日本曆的紀元處理方式

許多行事曆都有紀元,例如 AD/BC 或 CE/BCE。 在日曆中,年是由 nengcept 所描述,這是年份編號和紀元名稱的組合。 例如,2009 是 Heisei 21。 在過去,日本紀元名稱經常變更,但現在日本紀元只會在連續時變更。 Windows 和 Microsoft .NET 在過去支援此原則下的四個新式紀元:Meiji、Taishime、Shimewa 和 Heisei。

使用 Windows 7、Windows Server 2008 R2 和.NET Framework 4,Microsoft 認為未來可能會新增其他紀元。 在這些版本的 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」 是年份、月、日表單中年份為 4 位數、日為 2 位數且月份也是 2 位數的紀元開始日期的西曆日期。 空格會分隔日期的每個部分。
  • 「JE」 是紀元的日文名稱,後面接著底線。
  • 「AJE」 是紀元的縮寫名稱,以日文表示,後面接著底線。
  • 「EE」 是日本紀元的英文名稱,後面接著底線。
  • 「AEE」 是日本紀元的縮寫英文名稱。

應用程式開發人員的其中一個考慮是,Windows Update或其他方式可能會新增額外的紀元。 在此情況下,應用程式可能會遇到超過日曆的預期四紀元。 為了進行測試,測試人員可能會將額外的紀元新增至登錄;不過,這應該僅限於測試機器,因為它會影響整個電腦的行為。

可用於測試的這類金鑰範例如下。 您可以使用登錄編輯器進行這項變更。 (這是僅供測試使用的範例,並不適合預測任何未來的加法。)

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 和更新版本的機器。 建議應用程式開發人員使用這類額外的測試紀元來測試其應用程式,以確保在未來日期新增其他紀元時,其應用程式將會繼續運作。

擷取時間和日期資訊

行事曆識別碼