Windowsや.NETでの和暦情報の登録場所はどこに?
.NETではSystem.Globalization.JapaneseCalendarクラスを使用することで和暦表示をすることができます。
この和暦の情報はどこで管理しているでしょうか。年号が変わったらどうなるんでしょうか。
間もなく新しい年号になるということで気になったので調べてみました。
Windowsでは和暦の管理はレジストリで登録しているようです。
思ったよりわかりやすいところにあったので驚きです。
Keyは、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese
です。
参照するだけではなくて、簡単に編集することができます。
見よう見まねで新しい元号を追加すれば、ちゃんとそのように表示されます。(明日から新しい年号にもできる)
ただし、レジストリなので間違って登録してWindows自体がおかしくならないように注意してください。
こんな風に追加登録すれば明日から「練習元年」です。
実際には年号の変更タイミングに合わせてWindowsUpdateでこのレジストリ情報が更新されるようなので、直接編集する必要はありません。
完全に閉鎖された環境でUpdateがかけれないようであれば直接編集するのもアリかもしれません。
今回は、年号の変更日が事前に知らされているのでそこまで焦ることはないと思いますが、覚えておくとよいかもしれません。
でも、できれば和暦表示はなくしてほしい。。。。
Windowsに依存しているところはいいですが、過去に作ったもので独自にこのような定義をDBに登録しているものがあります。これは個別に追加必要なので大変ですね。
最初からOS依存で作っておいた方がいいですね。
※レジストリの参照や編集はPowerShellでもできるようですね。
以下の2つのコマンドを実行するだけです。
cd HKLM:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese Get-ChildItem
Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese
Name Property
—- ——–
Eras 1868 01 01 : 明治_明_Meiji_M
1912 07 30 : 大正_大_Taisho_T
1926 12 25 : 昭和_昭_Showa_S
1989 01 08 : 平成_平_Heisei_H
== ランキングに参加しています。ぜひクリックお願いします ==
Oracle12cのsql*loader optionsにerrors=-1を指定するとエラーになる 従来のプリンタ一覧ウィンドウを表示する