日付や金額の表示と Fortmat

java.textパッケージに用意された Formatのためのクラスの利用し、 日付や金額表示のように Localeに依存するリソースの取り扱いを解説します。
国際化対応で考慮しなくてはいけないことに、 日付や金額の数値表現など言語によって慣習的に決められた記述方法があります。 単純にメッセージを各国語に直訳するだけでは問題はかたづきません。 たとえば日付の表示の場合では、 年月日や曜日の記述の順番にも言語(国)ごとに違いがあります。 java.text パッケージには複雑な書式に合わせて数値や文字の情報を整形するための Formatクラスを共通のスーパークラスとするクラス群が用意されています。 国際化に対応するリソースを利用するためには、 これらのクラスを活用すると便利です。

Formatクラスのサブクラス群
クラス名 用途
NumberFormat 数値表現の Formatの共通のスーパークラス。
DecimalFormat 10進数表現の Format。 整数、小数、金額の表示。
ChoiceFormat 配列の添字によって内容を指定できる Format。
MessageFormat 最終的に必要となるリソースを与えるため複雑な代入が可能な Format。
DateFormat 標準的な日付の表示の形式を与える Format。
SimpleDateFormat 日付の表示の形式を調整するための Format。

上記のクラスのうち、DateFormatは与えられた Localeに合わせて 標準的な Formatを提供してくれます。 したがって、特別なリソースを用意しなくても複数の Localeに対応できる アプリケーションが作成できます。
これに対して、金額の表示などの Formatは内部に Localeを処理する機能はありません。 むしろプログラマはこれらのクラスを元にして Localeに対応するリソースのクラスを 設計します。そして複数のリソースが用意できたならば、 それらを ResourceBundle を使ってまとめることになります。

ソースファイル