Windows 10 レジストリの元号


設定はどこにあるのか

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras
ここにあります。

.NET Framework 3.5 ではハードコードされた元号が使われていましたが、レジストリを参照するように統一されました。その他の対応も含め、詳しいことは以下の記事に書いてあります。
新元号への対応について

PowerShell で和暦を表示

$culture = New-Object cultureinfo("ja-JP")
$culture.DateTimeFormat.Calendar = New-Object System.Globalization.JapaneseCalendar
$date = Get-Date
$date.ToString("ggyy年MM月dd日", $culture)

PowerShell で上記を実行すると 令和元年05月01日 のように表示されます。3行目では現在の日付を取得していますが、任意の日付を表示する場合は $date = [datetime]"2019-05-01" のように指定します。

仮定義による表示の違い

過去の記事につき折りたたんでいます。

April 2018 Update で新しい元号が入る場所には仮の値が追加されました。
このため、レジストリを参照するコントロールや .NET Framework 4 以降などは影響を受けます。

更新プログラム KB4458469 により仮定義が削除されました。引き続き検証が必要な場合は、手動でレジストリに仮の値を追加することができます。October 2018 Update も仮定義が含まれない状態で出荷されています。
Windows 10 Version 1803 における新元号の仮定義の削除について

仮定義 ??_?_??????_? を追加して、どのように表示が変わるのかを比較してみました。
それぞれの環境で JapaneseCalendar クラスを使った同じプログラムを実行しています。

仮定義なし
仮定義あり
「元年」の更新プログラム適用前
仮定義あり
「元年」の更新プログラム適用後

2019年5月1日以降の元号は「??」に置き換わっています。

また、仮定義がある状態で特定の更新プログラムが適用されていれば「??01年」の部分が「??元年」と表示されるようになっています。以前のように「1年」と出力させることも可能です。設定方法はフレームワークによって異なりますので、以下の記事をご覧ください。
Handling a new era in the Japanese calendar in .NET

使用したソースコードは以下のとおりです。

using System;
using System.Globalization;

internal class Program
{
    private static void Main()
    {
        var culture = new CultureInfo("ja-JP")
        {
            DateTimeFormat = { Calendar = new JapaneseCalendar() }
        };

        var year = new DateTime(2015, 01, 01);
        var date = new DateTime(2019, 04, 26);
        for (var i = 0; i < 10; i++)
        {
            Console.Write(year.ToString("yyyy年") + "\t");
            Console.Write(year.ToString("ggyy年", culture) + "\t");
            Console.WriteLine(date.ToString("ggyy年MM月dd日", culture));
            year = year.AddYears(1);
            date = date.AddDays(1);
        }

        Console.WriteLine();
    }
}

参考情報

2019 年 5 月の新元号への変更に関する更新 | Microsoft サポート
https://support.microsoft.com/ja-jp/help/4470918/updates-for-may-2019-japan-era-change

Japan New Era Name Support Blog | 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログ
https://blogs.technet.microsoft.com/jperablog/