- - PR -
和暦環境における日付のFormat
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-01-30 15:07
Win2k pro, VB.NET
日付をFormatする際、Format(日付, "yyyy")のようにしているのですが PCの環境が以下のようになっている場合、期待した値が得られません。 コントロールパネル>地域のオプション>日付で カレンダーの種類を「和暦」とした場合 この場合、Format(Now, "yyyy")の値は16(平成16年?)となってしまいます。 OSのカレンダー設定に関わらず、Format(Now, "yyyy")で2004という値を得るためには どのようにすればよいのでしょうか? | ||||
|
投稿日時: 2004-01-30 15:56
Now.ToString( "yyyy", DateTimeFormatInfo.InvariantInfo ); でカルチャに依存しない書式になるみたいです。 | ||||
|
投稿日時: 2004-01-30 16:28
ゆうじゅんさん、ありがとうございます。
ただ、既にかなりの量のコードを書いてしまっているので できればどこか1カ所の修正で何とか出来ないかと思っているのです。 OS環境が一定でない場合、Format関数は使うべきではなかったのでしょうか・・・ なんとかお知恵を拝借できれば幸いです。 | ||||
|
投稿日時: 2004-01-30 16:57
Windowsアプリなら
Main関数で Application.Runする前に Application.CurrentCulture = CultureInfo.InvariantCulture; を入れてみたらどうでしょうか? くわしくはヘルプで「カルチャ」を条件に検索してみてください。 | ||||
|
投稿日時: 2004-01-30 17:52
ありがとうございます!教えていただいた方法で、おおよそ解決しました。
あとひとつ、解決できていないのが、dtPickerなのですが、 現在dtPickerにはカスタムフォーマットでyyyy/MM/ddを指定していて ここに日付型の値を放り込むと、和暦環境では16/01/30になってしまいます。 見た目の問題だけ、と言ってしまえばそうなので、 お客様と相談してみます。 ゆうじゅんさん、本当にありがとうございました。 | ||||
|
投稿日時: 2004-01-30 18:08
もしどうしても対応しなくてはならなくなったら、↓に書いてある「コールバック フィールドを使用してカスタム書式を作成する」を参考にしてはどうでしょうか? http://www.microsoft.com/japan/developer/library/VBCon98/vbconusingdatetimepickercontrol.htm |
1