日付・時刻のフォーマット表示に使用するSimpleDateFormatクラスについて
SimpleDateFormatを使ったサンプル。
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String args[]){ Date date = new Date(0L); SimpleDateFormat sdf = new SimpleDateFormat("G yyyy/MM/dd(E) HH:mm:ss.SSS z Z"); System.out.println(sdf.format(date)); Date date1 = new Date(); SimpleDateFormat sdf1 = new SimpleDateFormat("G yyyy/MM/dd(E) HH:mm:ss.SSS z Z"); System.out.println(sdf1.format(date1)); } }
西暦 1970/01/01(木) 09:00:00.000 JST +0900
西暦 2013/09/10(火) 23:00:44.868 JST +0900
よく使うもの
文字 | 説明 | 例 |
y | 年 | 13(y),13(yy),13(yyy),2013(yyyy) |
M | 月 | 1(M) 01(MM) 1(MMM) 1月(MMMM) |
d | 月における日 | 1(d),01(dd) |
H | 一日における時(0~23) | 0(H),00(HH) |
m | 分 | 1(m),01(mm) |
s | 秒 | 1(s),01(ss) |
S | ミリ秒 | 9(s),978(SSS) |
いろんなフォーマット
文字 | 説明 | 例 |
G | 紀元 | 西暦(G) |
y | 年 | 13(y),13(yy),13(yyy),2013(yyyy) |
M | 月 | 1(M) 01(MM) 1(MMM) 1月(MMMM) |
w | 年における週 | 27 |
W | 月における週 | 2 |
D | 年における日 | 189 |
d | 月における日 | 1(d),01(dd) |
F | 月における曜日 | 2 |
E | 曜日 | 木(E,EE,EEE),木曜日(EEEE) |
a | 午前/午後 | 午前(a) |
H | 一日における時(0~23) | 0 |
k | 一日における時(1~24) | 24 |
K | 午前/午後の時(0~11) | 0 |
h | 午前/午後の時(1~12) | 12 |
m | 分 | 1(m),01(mm) |
s | 秒 | 1(s),01(ss) |
S | ミリ秒 | 9(s),978(SSS) |
z | タイムゾーン | JST(z,zz,zzz),日本標準時(zzzz) |
Z | タイムゾーン | +0900 |
パターン文字の連続する数によりフォーマットが決まります。
パターン内に任意の文字列を入れたい場合は、任意の文字列を’ ‘で囲みます。
‘ ‘で囲まれた文字列はパターン文字と認識されません。
※ 年を2桁で表す場合、オブジェクトが生成された年の前80年以内、後20年以内の範囲の年が認識されます。
2000年にオブジェクトを生成した場合、21年は1921年と解釈され、15年は2015年と解釈されます。
これは知らなかった。
日付の表現ってたくさんあり過ぎ。
[参考]
Javaの道:日付・時刻(3.SimpleDateFormatクラス)
http://www.javaroad.jp/java_date3.htm