日本历的纪元处理

许多日历都有纪元,例如 AD/BC 或 CE/BCE。 在日本历法中,年由 neng-(年号和纪元名称的组合)描述。 例如,2009 年为 Heisei 21。 过去,日本时代的名字经常变化,但现在日本时代只改变帝国继承。 Windows 和 Microsoft .NET 在历史上一直支持这四个现代时期的政策:明治、大舍、Sh?wa 和 Heisei。

对于 Windows 7、Windows Server 2008 R2 和 .NET Framework 4,Microsoft 认识到将来可能会添加其他纪元。 在这些版本的 Windows 上,纪元数据存储在注册表中的 项下:

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

如有必要,可以通过正常的Windows 更新过程向该密钥添加其他纪元。 可以使用注册表编辑器 (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”

其中
  • “YYYY MM DD”是年、月、日形式的纪元开始的公历日期,其中年为 4 位,日为 2 位,月也是 2 位。 一个空格分隔日期的每个部分。
  • “JE”是该时代的日语名称,后跟下划线。
  • “AJE”是该时代的缩写名称(日语),后跟下划线。
  • “EE”是日本时代的英文名称,后跟下划线。
  • “AEE”是日本时代的英文缩写名称。

应用程序开发人员的一个考虑因素是通过Windows 更新或其他方式添加其他纪元的可能性。 在这种情况下,应用程序可能会遇到超过预期四个日本日历的纪元。 出于测试目的,测试人员可能会向注册表添加额外的纪元;但是,这应仅限于测试计算机,因为它会影响整个计算机的行为。

下面是可用于测试的此类密钥的示例。 可以使用注册表编辑器进行此更改。 (这是一个仅用于测试使用的示例,不用于预测任何将来的添加。)

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 及更高版本的计算机。 建议应用程序开发人员使用此类额外的测试纪元来测试其应用程序,以确保在将来的某个日期添加其他纪元时,其应用程序将继续工作。

检索时间和日期信息

日历标识符