CLDRの和暦

CLDRの和暦

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

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

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

目次

  1. 元号コード
  2. 古代の元号
  3. 不具合
    1. 暦法の不具合
    2. 改元の不具合
  4. 関連
  5. 歴史
  6. メモ

元号コード#

[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

[33] どうやら CLDR の開発陣にはこれを修正する能力がないらしく、 明治より前のデータを削除する方向で進めているようです。 >>13, >>14, >>32

[34] 壊れた異常な実装が広まっている状態が是正されるのは良いことですが、 正しい実装に置き換えるのではなく削除するのを良しとするあたり、 文化の多様性を尊重するべき性格のプロジェクトが取るべき態度なのかは疑問が残りますね。 日本改元旧暦の正しい情報を調べて実装することくらい、 少し頑張ればできるはずなのですから。 (世界各地のマイナー日時制度に比べれば情報が多くて遥かにやりやすい方のはずなのに、 日本すらこの扱いなのですから、他の諸国、諸民族の日時制度への対応は推して知るべしでしょう。)
[38] 部分的な改善のための実装案は提出されているようですが、 そうしたものすら却下されているようです。 >>35, >>36 実装を改善し世界各地の文化を適切に処理できるようにしようという意思が開発陣から根本的に欠如していて、 現状維持で精一杯、できればトラブルの種は削りたいといったところでしょうか。

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

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

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

関連#

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

[39] 低品質で壊れているにも関わらず ECMA-402 のために WebJS事実上の標準になっているのが大問題なんですよね。 昔は一応 IE の実装があったのですけれども、今では他に相互運用可能な独立した実装がなく代替不可という... 本来これは標準として認めるべきではない状況なのですけど、 そうはいっても今更廃止するわけにもいかないですし、代わりがすぐに出てくる状況でもないですし、 にも関わらず新機能もどんどん追加されていますし、困ったものです。

歴史#

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

メモ#

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