スポンサーリンク
技術情報

改元対応!.NET 特にWin10 1803以降はレジストリ情報に気を付けて!【解決済】

改元対応!.NET 特にWin10 1803以降はレジストリ情報に気を付けて!
この記事は、もうすぐ改元対応だけど、レジストリ情報を利用する各種アプリやシステムで注意する事ある?にお答えします。

最終的に「更新プログラムをあてていれば、問題ないです」という内容です。おすすめ情報でレジストリ取得クラスの紹介もしてます!

改元対応って?

2019.5.1に確定している和暦の変更。

MS社からのアナウンスにもある通り、順次改元対応が進められています。

2018.9.21の更新プログラムにて、仮定義は削除されているようです。(次項参照)

Windows10 1803以降の場合には和暦情報を格納するレジストリに、すでに新改元情報が格納されています!

しかし改元日のみが決まっている為、和暦『??』の改元レコードが存在します。

改元対応!.NET 特にWin10 1803以降はレジストリ情報に気を付けて!レジストリ和暦

MS社の対応

  • 2018.4.20:仮定義「??」元号の追加
  • 2018.9.21:更新プログラム KB4458469で追加元号の削除

当初サービスで追加していた「??」年号は検証しにくいのでやめてくれという問い合わせが増えて、

とりあえず「regファイルや手動での消込方法を教えていたうんぬん」…とあります。
いつものことですが、不評だったのでしれっと「更新プログラムで削除しました!」というアナウンスが流れたようです。

はじめからやめてよ!と言いたくなります。

最終的に改元の元号発表のタイミングでアップデート配布になるという事で落ち着いたようです。
→普通になりました。

2018.4.20 新しい元号となる 2019 年 5 月に先立ち、各元号の期間を保持しているレジストリが更新される予定です。

引用:Windows 10 機能更新プログラム (2018 Spring Release) における元号のレジストリ更新について

2018.9.21 日本時間 9 月 21 日よりご提供を開始いたします Windows 10 Version 1803 向けの更新プログラム KB4458469 により下記スクリーン ショットにございます仮定義の削除が行われます。検証や開発等に必要な場合には、個別に追加をご検討くださいますようお願いいたします。

引用:Windows 10 Version 1803 における新元号の仮定義の削除について

取得和暦の対策

すでに定義が削除されていますが、更新プログラムをあててない場合には、残っている可能性がありますので注意が必要です。

定義削除が完了されていない場合、もしくは運用上できない場合には、元号の『??』文字列一致で未確定和暦の処理を回避しましょう!

【例】

if !(GetEra(i)=="??") {
  //和暦処理
}

Windows OSのレジストリ情報から取得する

改元対応でハードコーディングしてるけど、今のうちに対応したいという方におすすめ!

実際に和暦情報を取得するクラスを公開しています。
参考までにご利用下さい!

和暦取得クラスを無料公開中

10年以上の運用実績を持つ独自クラスを提供中。

ハードコーディングしているあなた。ぜひご利用下さい!

改元対応!C#.NETで和暦レジストリ情報取得クラスを公開!和暦→西暦判断にぜひ この記事は、もうすぐ改元対応だけど、和暦ってOSのレジストリ情報って取得できないの?コードの日付判断を変更したい。に答えます。 W...
改元対応!VB.NETで和暦レジストリ情報取得クラスを公開!和暦→西暦判断に。 この記事は、もうすぐ改元対応だけど、和暦ってOSのレジストリ情報って取得できないの?コードの日付判断を変更したい。に答えます。 W...

まとめ

改元もあと半年にせまってきました。

昭和から平成への改元と異なり、システムになっている資産も数多いと思います。

市販のコンポーネントで対応できる箇所も多いと思いますが、簡易ハードコーディングのシステムもまだまだ存在しています。

ぜひ改元対応にご活用下さい!