ここで紹介するのは、日時を日本語表示するサンプルプログラムです。
JDK1.02 でも、システムに依存する形でなら日本語の表示が可能でした。
JDK1.1 ではシステムによらずに日本語表示が可能になった点が重要です。
Solaris でも Windows でも Mac でも、日本語コードの種類に関係なく
日本語表示が可能です。
日時の表示に関しては、国際化対応した専用のクラスが用意されているため、
プログラマーは国際化された文字列やそのフォーマットについて直接取り扱う
必要はありません。ただし、表示を実行するまでに必要となる手続きは、
多少めんどうになります。
JDK1.0 では、日時とその表示はすべて Date というクラスを通じて行い
ました。JDK1.1 では、国際化機能を含めてさらに拡張された Calendar と
いう名前のクラスが java.util パッケージに追加されました。
また、日時の表示を専用に扱うためのクラス DateFormat が java.text パッケージ
に用意されています。また、言語環境とタイムゾーンを取り扱うための
クラス Locale と TimeZone が java.util パッケージに追加されています。
システムの環境からこれらの情報をデフォルト値として使用する場合には
特に用意する必要はありません。
ただし、特定の言語環境を指定したり、複数の言語環境に対応するアプリケーション
を開発する場合には、これらのクラスの取り扱いも必要となります。
| クラス名 | 働き | 所属するパッケージ |
|---|---|---|
| Calendar | 日時の情報の取得、設定 | java.util |
| DateFormat | 日時の表示の形式 | java.text |
| Locale | 言語環境の情報 | java.util |
| TimeZone | タイムゾーンの情報 | java.util |
プログラムの中で Calender 及び DataFormat を扱う方法を示します。
/** 言語環境に対応した時刻表示に必要なオブジェクト */
Calender cal = Calendar.getDefault();
Date date = cal.getTime();
DateFormat df = DateFormat.getDateTimeFormat( DateFormat.FULL,
DateFormat.FULL );
String str = df.format( date );
Calendarクラスや DateFormatクラスはシステムおよび言語環境に依存します。
そのため、コンストラクタによって生成するのではなく、
クラス自身に用意された getDefault() のようなメソッドを用いて
オブジェクトを受け取る形式になります。(Imageクラスなどと事情が似ています。)