マイクロソフトの新元号対応について
マイクロソフトのサイトに新元号対応についての記載されていました。
新元号対応は時間かかるかと思ったのですが、早めに対応してくれそうですね。
2019 年 5 月の日本の元号変更に関する更新プログラム
- 個人向け
日本の新元号対応に向けて Windows と Office を準備する方法
レジストリ変更しなくても設定画面から新元号って追加できるみたいですね。 - Windows(法人向け)
- .NET(法人向け)
現在利用している処理
仕事で和暦表示用クラス(JapaneseCalendar)を利用し、元号変換する以下のような関数を作って利用しています。もうすぐ元号が変わるので対応方法を調べてみました。
1 2 3 4 5 6 7 | Imports System.Globalization '日付変換用 Public Function JPGengouFormat(fdate As DateTime) As String Dim cuinfo As CultureInfo = New CultureInfo("ja-JP") cuinfo.DateTimeFormat.Calendar = New JapaneseCalendar Return fdate.ToString("ggyy", cuinfo) End Function |
この関数は日付型データを与えると元号と年数を返す処理をやっています。
例)2018年1月11日というデータを関数に与えると「平成30」という値が返ってきます。
新元号になったときの対応方法
1.WindowsUpdateで.NET Frameworkを更新する
JapaneseCalendarクラスは.NET Frameworkが入っていれば利用できるので、新元号発表後にWindowsUpdateで.NET Frameworkが更新されれば自動的に新元号が利用できるようになるみたいです。
2.レジストリを追加する方法
システムが入っているPCのレジストリを変更すれば新元号の追加はできるみたいです。
以下サイトを参考にしました。
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ee923790(v=vs.85).aspx
- regeditを管理者権限で起動し以下レジストリへ移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras
- 右クリックして新規→文字列値を選択します。
- 「yyyy MM dd」形式で新元号の始まる日を設定します。
ここでは「2020 01 01」と入力します。
- 修正をクリックし、新しい元号を入力します。
ここでは「新元_新_shin_N」と入力します。
「2文字漢字元号_1文字漢字元号_アルファベット元号_アルファベット1文字元号」形式がよさそうです。
- 以下のテスト用コードを書いて実行する。123456789101112Imports System.GlobalizationModule Module1Sub Main()Dim cyear As DateTime = New DateTime(2022, 1, 2, 3, 4, 5, 0)Dim cuinfo As CultureInfo = New CultureInfo("ja-JP")cuinfo.DateTimeFormat.Calendar = New JapaneseCalendarMsgBox(cyear.ToString("ggyy", cuinfo))End SubEnd Module
- 結果
2022年は設定した通り新元03年と表示されました。
WindowsUpdateでなんとかなるのがいいんでしょうが、すぐに修正する必要がある場合はレジストリ修正することになるんでしょうね。