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, 2010Time
22:23:45
22時23分45秒 JST
10:23:45 PM JSTDate 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