Unicodeにおける日本の元号の開始日・終了日の定義について

天皇陛下の生前譲位の話題がしばらく前に上がりました。 技術分野でも、改元されると元号を扱っているプログラムを改修する必要が出るとか、元号の「㍻」のような合字はブラウザで縦書きのときに縦に積みなおした合字にするのか、など様々な話題があります。 今回はその中でも、もっと基本的な部分についてチェックしてみようと思います。 元号の開始日付と終了日付は正しくないのではないかという指摘 この問題に気付いたのは「Unicode Standardの元号の説明の問題は変わっていなかった」という個人ブログの記事です。Unicode Standardにおける日本の各元号の開始日付・終了日付がおかしい、という指摘ですね。 Unicode Standardでの定義 そこで、元号に関する説明をUnicodeコンソーシアムのサイトでチェックしてみました。 http://www.unicode.org/standard/standard.htmlの「Latest Version」>「Full Text pdf for Viewing」をクリックして表示される『The Unicode Standard version 9 – Core Specification』というPDFに記載されています。1000ページを超える超大作の仕様です。 同PDFの目次xxixページ(PDFだと29ページ)にある「Table 22-8. Japanese Era Names … 819」をクリックし、819ページの該当のテーブルを開きます。 平成の開始日は1989年1月7日、という記述になっています。 ICUでの記述 ついでに判明したのですが、国際化関連のライブラリICU-Project(International Components for Unicode)の記述においても、Unicode Consortiumと同様の、ずれた日付が使われています。一方が他方を参照しているか、両者が同じ資料を参照しているのでしょう。 Note that in the year of an imperial ascension, there are two possible sets of year and era values: that for the old era and for the new. For example, a new era began on January 7, 1989 AD. Strictly speaking, the first six days of that year were in the Showa era, e.g. “January 6, 64 Showa”, while the rest of the year was in the Heisei era, e.g. “January 7, 1 Heisei”. This class handles this distinction correctly when computing dates. However, in lenient mode either form of date is acceptable as input. In modern times, eras have started on January 8, 1868 AD, Gregorian (Meiji), July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei). Constants for these eras, suitable for use in the ERA field, are provided in this class. Note that the number used for … Continue reading Unicodeにおける日本の元号の開始日・終了日の定義について