※本記事は一次情報をもとにAI支援によって構成・作成し、事実関係の照合を行っています。
発表内容(事実)
Microsoftは、.NET 11 Preview 1において、日本語カレンダー(System.Globalization.JapaneseCalendar)の最小サポート日を変更する破壊的変更(動作の変更)を発表しました。
今回の変更により、明治時代の開始日が従来の「1868-09-08」から「1868-10-23」に更新されました。この日付は、日本語カレンダーでサポートされる最小の日付(JapaneseCalendar.MinSupportedDateTime)としても機能します。
この記事のポイント
- 導入バージョン: .NET 11 Preview 1
- 以前の動作:
JapaneseCalendar.MinSupportedDateTimeは1868-09-08を返し、同日から1868-10-23までの間の日付を有効なものとして受け入れていた - 新しい動作:
JapaneseCalendar.MinSupportedDateTimeは代わりに1868-10-23を返し、1868-09-08から1868-10-23までの日付が無効として拒否されるようになった - 変更の理由: 最新の Unicode 共通ロケール データ リポジトリ (CLDR) データ(CLDR-11375)を反映し、日本の明治時代の始まりに関する履歴精度を向上させるため
- 影響を受けるAPI:
System.Globalization.JapaneseCalendarおよびSystem.Globalization.JapaneseCalendar.MinSupportedDateTime
実践するには
JapaneseCalendar.MinSupportedDateTime の古い値に依存しているすべてのコードを更新する必要があります。また、1868-10-23 より前の日付については、JapaneseCalendar を使用せずにグレゴリオ暦の日付を使用することが推奨されています。
考察(筆者の見解)
事実として、今回の変更は Unicode CLDR データ(CLDR-11375)の反映を目的としており、JapaneseCalendar.MinSupportedDateTime の返す値が 1868-09-08 から 1868-10-23 へと更新されています。これにより、これまで有効だった一部の日付範囲が無効として扱われる仕様変更となっています。
推測として、歴史的な日付や和暦を厳密に扱う単体テストやバリデーション処理において、古い最小サポート値(1868-09-08)をハードコーディングしているアプリケーションではテストの失敗などの影響が発生する可能性があります。.NET 11への移行を進める開発現場では、該当する日時処理のテストケースを見直す必要があると考えられます。

コメント