目次へ

8.2. 日時の表現

日時データを整形して出力する場合には、java.text.DateFormatを使用します。DateFormatの取得には、そのクラスメソッドである「getInstance」「getDateInstance」「getDateTimeInstance」「getTimeInstance」のいずれかか、サブクラスであるjava.text.SimpleDateFormatクラスから作成します。

DateFormat format = DateFormat.getDateInstance(DateFormat.LONG);
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

DateFormatから作成する場合には、クラス変数でフォーマットを指定します。「LONG」「MEDIUM」「SHORT」の3種類用意されており、そのいずれかを指定します。省略した場合には、SHORTが適用されます。

細かく書式を指定したい場合にはSimpleDateFormatを使用します。書式の指定には、パターン文字を使用して定義します。主要なパターン文字を以下に示します。

パターン文字

表示するフィールド

表示形式
G 紀元 テキスト形式で表示します。
y 3文字以下の場合は下2桁を表示します。4文字以上の場合は、数値形式で表示します。
M 3文字以上の場合はテキスト形式で表示します。2文字以下の場合は、数値形式で表示します。
W 月における週 数値形式で表示します。
d 月における日 数値形式で表示します。
E 曜日 テキスト形式で表示します。
a 午前/午後 テキスト形式で表示します。
H 時間 数値形式で、24時制(0〜23)で表示します。
k 時間 数値形式で、24時制(1〜24)で表示します。
K 時間 数値形式で、12時制(0〜11)で表示します。
h 時間 数値形式で、12時制(1〜12)で表示します。
m 数値形式で表示します。
s 数値形式で表示します。

テキスト形式:4文字以上の場合はフルテキスト、3文字以下の場合は省略形がある場合にはその形式で表示します。
数値形式:文字数で最小桁数を指示。足りない場合には0を補完して表示します。

パターン文字以外の文字は、そのまま表示されます。パターン文字で使われている文字をそのまま出力したい場合には、「'」で囲みます。

日時データを整形して出力する場合には、「format」メソッドを使用しますがそれの引数は「java.util.Date」です。Calendarからは「getTime」メソッドでDateが取得できますので、それを用いて以下のようにする事ができます。

Calendar cal = Calendar.getInstance();
String text = format.format(cal.getTime());

逆に整形された文字列を解釈して、Dateを作成する事も可能です。その場合には「parse」メソッドを使用します。

String sample = "1900-06-23";
Date date = format.parse(sample);

parseメソッドは文字列の書式が解釈できないものである場合、java.text.ParseExceptionをスローします。

(実習課題3)

引数で指定した日が、その月の何週目の何曜日か表示するコンソールプログラムを作成しなさい。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp