Gannen (元年) Vs. Ichinen (1年)
In historical practice, for the first year of the era, a special character, “Gan (元),” whose Kanji character means “origin” or “beginning,” is used in place of the number “Ichi (1).” The first year “Gannen (元年)” continues until the end date of the Gregorian calendar year, December 31.
Windows now supports both “Gannen (元年)” and “Ichinen (1年)” for the first year of the era. For all the supported in-market versions of Windows from Windows 10 1809 and earlier, Gannen will be OFF by default, however, it can be enabled.
To enable Gannen, under [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese]
set the InitialEraYear
registry key to “元年”.
To disable Gannen, set the InitialEraYear
registry key to “1年”.
Windows version |
Default Gannen ON/OFF |
19H1(Windows Insider Build) |
ON |
Windows 10, version 1809 |
OFF |
Windows 10, version 1803 |
OFF |
Windows 10, version 1709 |
OFF |
Windows 10, version 1703 |
OFF |
Windows 10, version 1607 |
OFF |
Windows 10 RTM |
OFF |
Windows 8.1 / Windows Server 2012 R2 |
OFF |
Windows7/Windows Server 2008 R2 |
OFF |
Windows Server 2012 |
OFF |
Windows Server 2008 |
OFF |
Note
Users will have to log-off and login again after the adjusting registry keys, for the change to take effect on Windows.
By default, all versions of .NET Framework support “Gannen (元年)” .
To disable Gannen on .NET, , set:
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber
to true.
For more info, see the Summary of new Japanese era updates for .NET Framework article.
VBA programming in Office that depends on OLE will support “Gannen (元年)".
Range-Relaxation
When the Heisei (平成) era ends on April 30, 2019 which is Heisei (平成) 31, and the new era begins on May 1, 2019, “平成31年5月1日” becomes invalid. We have relaxed our parsers to allow the future/past dates (both Gregorian and Japanese dates) in OLE and .NET Framework, to be converted into the new Japanese era date. You will also be able to convert the future dates in Heisei to the new Japanese era once the new Japanese era name is announced. It cannot be disabled in OLE but can be disabled in .NET Framework.
Abbreviated era name
Windows will continue to support the existing abbreviation functionality. For example, for the Heisei era, the abbreviated form will continue to be “平” in Kanji and “H” in English.
Ligature
The Japanese "Kanji" includes ligature/glyph that allows the era name. 平成 is represented in two Kanji characters, and ligature of this, ㍻, is represented in a single Kanji character. Here are the code points of ligature character of the existing four eras and the new era:
㍾ (U+337E
)
㍽ (U+337D
)
㍼ (U+337C
)
㍻ (U+337B
)
令和 (U+32FF)
Note
Microsoft Windows Code Page 932 (MS932), a Shift-JIS encoding, does not support ligature of the new era. Character(s) might not display properly while converting Unicode new Japanese era ligature (single Kanji) character to multi-byte characters and vice versa when used with MS932 encoding. For example, using the StrConv
function within the VBA module to convert string for certain locale IDs like vbWide,
vbNarrow
, vbKatakana,
or vbHiragana
.
Collation
Collation is the assembly of written information into a standard order based on numerical order, alphabetical order or both. Currently, supported Windows versions don't support collation.
Normalization
The Kanji era full name can be normalized to the Kanji ligature era name and vice versa. For example, conversion from two characters representing 平成 (Heisei) era to a corresponding ligature㍻ (Heisei) and vice-versa. However, Microsoft won't release any updates to support normalization functionality for the new era.
The Kanji era full name and the Kanji ligature era name are treated as different strings during string comparison, even if you indicate a Japanese culture-specific comparison. By design, this difference will continue for the new Japanese era.
OLE
Certain OLE functions will be updated to handle the new Japanese era. If your applications are using Date and Time functionalities from Visual Basic 6.0, VBScript, VBA, JavaScript, or ATL/MFC libraries, you'll need to apply the latest update for Windows. In some cases, and you might also need to rebuild your applications in some cases because these libraries use OLE functions.