.NET Frameworkの新元号対応

こんにちは、製品開発担当の加々知です。
今月から新元号に変わりましたね。
昭和から平成になったときはまだ幼かったので変わったことに対して意識したことはありませんでした。


さて、.NET Framework の日本の新元号対応についてMicrosoftから以下の内容が発表されています。

https://support.microsoft.com/ja-jp/help/4477957/new-japanese-era-updates-for-net-framework

リンク先によると
「.NET Framework 3.5 以降のバージョンのマンスリー ロールアップ リリースで更新プログラムを発行する予定」
とあります。

「シーオーリポーツ 帳票クリエータ Ver.3 for .NET(以下 帳票クリエータ V3 .NET)」でスクリプトの組込関数として日付フォーマットの指定での日付の取得をサポートしています。
「帳票クリエータ V3 .NET」は対象の.NET Freamework が「3.5 SP1」なので.NET Freameworkに準じています。

ちなみにレジストリを更新することで対応することも可能みたいです。

https://blogs.technet.microsoft.com/jperablog/2018/04/20/rs4-registry/

では、新元号の表示を試してみようと思います。(ここからは帳票クリエータ V3 .NETは関係ないですっっ)

今回も言語はC#(7.2以上)を使用します。
私の環境ではWindows Updateで新元号対応のアップデートが適用されなかったため、
レジストリを更新して試しています。

以下のコードを実行してみます。

var dateTime = new DateTime(2019, 5, 1);
CultureInfo jpCulture = new CultureInfo("ja-JP", false);
jpCulture.DateTimeFormat.Calendar = new JapaneseCalendar();
string date = dateTime.ToString("gyy年MM月dd日", jpCulture);
MessageBox.Show(date);

結果は
令和01年
になりました。
ちゃんと表示されてますね。

結果では"令和01年"となっていますが、Windows Updateによって元年表記をデフォルトに変更するみたいです。
今までの様に数値で表示したい場合はapp.configに
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber
を追加し、値をtrue に設定する事によって可能になるらしいです(未確認)

元号表記に関しての参考になればと思います。
それでは、また次回。(次回は雑談になるかもです。)(・ω・)ノシ