マイナー・マイナー

隠れた名作の発掘が生きがい。

日付と時刻の書式化(フォーマット)を行ってみた


スポンサードリンク

Javaでは,日付と時刻の書式化(フォーマット)のためにjava.text.DateFormatクラスが用意されています.書式化の利用方法は,DateFormatクラスのオブジェクトを生成し,formatメソッドを呼び出すことで実現できます.


オブジェクトを生成するメソッドは,大きく「日付」「時間」「日付と時間」の3つに別れ,それらを合わせると全部で10種類あります.

  • 日付

getDateInstance()
getDateInstance(int style)
getDateInstance(int style, Locale aLocale)

  • 時刻

getTimeInstance()
getTimeInstance(int style)
getTimeInstance(int style, Locale aLocale)

  • 日付と時刻

getInstance()
getDateTimeInstance()
getDateTimeInstance(int dateStyle, int timeStyle)
getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)}


引数style(dateStyle,timeStyle)は日付や時間の表示方法を指定します.引数aLocaleは,java.util.Localeクラスであり,特定の国や地域,文化の規則に依存した日付や時間の方式(ロケール)を指定します.


書式化の具体例を次に示します.上述のメソッドでDateFormatオブジェクトを生成し,formatメソッドを呼び出して書式化を実現します.formatメソッドの引数にはjava.util.DateクラスのDateオブジェクト(特定の時点を表現する)を指定しています.コンストラクタに何も引数を指定しないことで,実行時点の日付と時刻を取得できます.また,styleにはFULL,ロケールには米国を指定しました.

package study101016;

import java.util.*;
import java.text.*;

public class DateFormatTest {

	public static void main(String[] args) {
		Date now = new Date();
		int dateStyle = DateFormat.FULL;
		int timeStyle = DateFormat.FULL;
		Locale locale = new Locale("en", "US");

		// 日付
		System.out.println("----- Date -----");
		System.out.println(DateFormat.getDateInstance().format(now));
		System.out.println(DateFormat.getDateInstance(dateStyle).format(now));
		System.out.println(DateFormat.getDateInstance(dateStyle, locale)
				.format(now));

		// 時刻
		System.out.println();
		System.out.println("----- Time -----");
		System.out.println(DateFormat.getTimeInstance().format(now));
		System.out.println(DateFormat.getTimeInstance(timeStyle).format(now));
		System.out.println(DateFormat.getTimeInstance(timeStyle, locale)
				.format(now));

		// 日付と時刻
		System.out.println();
		System.out.println("----- Date and Time -----");
		System.out.println(DateFormat.getInstance().format(now));
		System.out.println(DateFormat.getDateTimeInstance().format(now));
		System.out.println(DateFormat.getDateTimeInstance(dateStyle, timeStyle)
				.format(now));
		System.out.println(DateFormat.getDateTimeInstance(dateStyle, timeStyle,
				locale).format(now));
	}
}


実行結果


Date
2010/10/16
2010年10月16日
Saturday, October 16, 2010

Time
22:23:45
22時23分45秒 JST
10:23:45 PM JST

Date and Time
10/10/16 22:23
2010/10/16 22:23:45
2010年10月16日 22時23分45秒 JST
Saturday, October 16, 2010 10:23:45 PM JST