皆さんはロケールごとに日時をフォーマットする際に、どのようなことを考慮していますか?
もちろんIntl.DateTimeFormatだけで済むのが理想ですが、実際にはIntlで対応できる範囲以上の細かい制御を求められることも多いと思います。
では、フォーマットパターン文字列(yyyy/MM/ddのようなもの)で指定できれば問題ないのでしょうか?残念ながらフォーマットパターン文字列自体の扱いや各パターンに対応するデータがライブラリによって異なるため、この方法も万能ではありません。
このLTでは、「日時のフォーマット」という一見簡単そうに見える機能の背景にある仕様と複雑さについて解説します。現状日時のフォーマットに完全な正解はないと考えていますが、今後国際化を考えたフォーマット機能を実装する際に考慮すべきポイントと陥りがちな落とし穴を可能な限り網羅することを目指します。