PGBox
P
G
Box

日付フォーマット

フォーマットのメニューへ戻る



使用した環境
JDK 6 Update 11

Date型を見やすいようにフォーマットします。

java.text.SimpleDateFormatを使用します。
コンストラクタにフォーマット文字列を指定する事で、任意の日付フォーマットを行う事が可能です。
一般的に使用されるのは、以下サンプルのようなフォーマットになります。

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) throws Exception {
        Date date = new Date();
        
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.S");
        System.out.println(format1.format(date));

        SimpleDateFormat format2 = new SimpleDateFormat("yyyy/M/d H:m:s.S");
        System.out.println(format2.format(date));
        
        SimpleDateFormat format3 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
        System.out.println(format3.format(date));

        SimpleDateFormat format4 = new SimpleDateFormat("yyyy年M月d日 H時m分s秒");
        System.out.println(format4.format(date));
    }
}


結果は以下のようになります。

2009/07/06 23:04:52.859
2009/7/6 23:4:52.859
2009年07月06日 23時04分52秒
2009年7月6日 23時4分52秒

        
他にも様々なフォーマット文字が存在しますが、一般的に使用されるフォーマット文字は以下の通りになります。(というか、下記のフォーマット文字以外のものは、めったに使う事はないでしょう・・)
フォーマット文字意味
y
M
d
H
m
s
Sミリ秒
E曜日(日~土)


フォーマット文字は、連続して指定する事で任意の桁数にフォーマットする事ができます。
現在年が2009年だとした場合、"yy"と指定すると"09"、"yyyy"とすると"2009"にフォーマットされます。
同様に、現在が7月だった場合、"M"と指定すると"7"、"MM"とすると"07"となります。
日や時分秒などのフォーマット文字においても同様です。

また、フォーマット文字において、大文字と小文字は明確に区別されます。




また、フォーマット文字列の通りの形式の文字列である場合、その文字列を日付(java.util.Date)に変換(パーズ)する事も可能です。

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) throws Exception {
        String strDate = "2009/07/06 23:35:10";

        SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

        Date date = format1.parse(strDate);

        System.out.println(date);
    }
}
結果は以下のようになります。


Mon Jul 06 23:35:10 JST 2009

このサンプルの場合、[strDate]にyyyy/MM/dd HH:mm:ss形式でない文字列が入っていた場合は、
java.text.ParseExceptionが発生する事となります。






フォーマットのメニューへ戻る