CLDRの和暦

CLDRの和暦

[1] CLDR / ICU和暦に対応しています。

[2] Mac OS X / iOSChromeFirefox など多くのソフトウェアが ICU を組み込んでいます。

[29] つまり広く使われているのですが、困ったことにひどく低品質です。

元号コード

[4] 独自の元号コードを使っています。 CLDR元号コード

古代の元号

[20] 古代の初期の元号の扱いはそもそも非常に難しいです。 日本古代の日時

[21] 元号制定前は天皇疑似元号を使って表す慣習がありますが、 それに対応していません。 大化以前はすべて大化になり、 大宝までの空白期は直前の元号延長年号になります >>30, >>18

[22] これが悪い、というわけでもありませんが、 西暦和暦誤認バグ大化が出てくるのはこの仕様のためです。

[23] なぜか白鳳の一種に対応しています。 これが当時実在した元号でないことは昭和時代初期くらいから定説になっているのですが、 平成時代初期頃まで一般の元号一覧に掲載されていることがありました。 日本古代の日時, 白鳳 その亡霊がなぜか未だ生き残っているようです。

不具合

[3] なにかと壊れています。

[6] 西暦和暦誤認バグ: iOSアプリで多く報告されているバグ。 不具合の原因はアプリ側と考えられますが、 ライブラリーの設計に起因する問題と思われます。 CLDR / ICU の仕様に問題があるのか、 Apple の提供するライブラリーの仕様に問題があるのかは要検討。

暦法の不具合

[5] 本来の和暦は明治5年までを旧暦としなければなりませんが、 ICU旧暦に対応していません。

[17] 明治改暦以前がなぜかイタリア式ユリウスグレゴリオ暦になってしまいます。 >>30, >>18

改元の不具合

[12] 日本南北朝時代の元号の扱いがおかしいです。 なぜか南朝北朝が混じっています >>30, >>14, >>18。 一部足りていない元号もあります。

[15] 明治改暦以前の改元日が間違っています。遅くてもには不具合として認知されているはずです >>16, >>13, >>14 が、 放置されています。

[19] その他年数がおかしいなど謎挙動が発生することがあります。 >>14, >>18, >>24

正しいデータは元号一覧データファイル, 他の実装の状況は元号一覧

[27] 永仁 (y~1119) の改元日1293-8-55 になっているという不具合が長年発見されずにいました。 >>26

[28] 正しくは旧暦の西暦1293年8月5日

関連

[25] CLDR / ICU は便利ではあるのですけど、 (少なくても日時処理については、) 日本に限らず全体的に低品質な印象があります。 CLDR / ICU はまともでもそれを使うアプリケーション側の配慮が不十分なケースもあります。 CLDR, ICU, toLocaleString

歴史

[11] どこから引っ張ってきたデータなのか何も情報がない...

メモ

[31] JavaScriptが令和に対応。Intl.DateTimeFormatで日付を和暦(元号)表記に変換する - Qiita, https://qiita.com/shisama/items/cb0abb5435fac82e87d6