和暦での元号処理

多くのカレンダーには、AD/BC や CE/BCE などの時代 (年号) があります。 日本暦では年号と年号の組み合わせで年号が記載されています。 たとえば、2009 年は平成 21 年です。 かつては日本の時代名が頻繁に変わりましたが、今では帝国の継承によってのみ日本の時代が変わります。 Windows と Microsoft .NET は、歴史的に、このポリシーの下で 4 つの現代をサポートしてきました: 明治、太生、松和、平成。

Windows 7、Windows Server 2008 R2、および .NET Framework 4 では、今後、時代 (年号) が追加される可能性があることを認識しています。 これらのバージョンの Windows では、時代 (年号) データはキーの下のレジストリに格納されます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras

必要に応じて、通常のWindows Updateプロセスを通じて、そのキーに新しい時代 (年号) を追加できます。 このキーは、レジストリ エディター (Regedit.exe) を使用して表示できます。 Windows 7 に付属するキーと値の例を次に示します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"1868 01 01"="明治_明_Meiji_M"
"1912 07 30"="大正_大_Taisho_T"
"1926 12 25"="昭和_昭_Showa_S"
"1989 01 08"="平成_平_Heisei_H"

各時代 (年号) の値の名前は、グレゴリオ暦で時代 (年号) が始まる日付です。 値には、日本語の元号名、日本語の短縮名、英語の名前、英語の短縮名が含まれます。

"YYYY MM DD"="JE_AJE_EE_AEE"

where
  • "YYYY MM DD" は、年、月、日の形式の時代の始まりのグレゴリオ暦の日付です。year は 4 桁、day は 2 桁、month も 2 桁です。 日付の各部分はスペースで区切られます。
  • "JE" は元号の日本名で、その後にアンダースコアが続きます。
  • "AJE" は、時代 (日本語) の省略名で、その後にアンダースコアが続きます。
  • "EE" は日本の時代の英語名で、その後にアンダースコアが続きます。
  • 「AEE」は、日本の時代の短縮英語名です。

アプリケーション開発者にとっての考慮事項の 1 つは、Windows Updateまたはその他の方法によって新しい時代が追加される可能性です。 その場合、アプリケーションは、日本のカレンダーに予想される 4 つの時代を超える可能性があります。 テストの目的で、テスト担当者はレジストリに新しい時代号を追加できます。ただし、これはマシン全体の動作に影響するため、テスト マシンのみに制限する必要があります。

テストに使用できるこのようなキーの例を次に示します。 この変更は、レジストリ エディターで行うことができます。 (これはテスト使用のみの例であり、今後の追加を予測するためのものではありません)。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2020 09 01"="仮名_仮_Test Era_X"

これは、Windows 7 以降または .NET Framework 4 以降を実行しているマシンにのみ影響します。 アプリケーション開発者は、このような追加のテスト時代でアプリケーションをテストし、将来の日付に新しい時代が追加された場合にアプリケーションが引き続き機能することを確認することをお勧めします。

時刻と日付の情報の取得

予定表識別子