【Java入門】SimpleDateFormatクラスで日付の表示方法

入門

Javaでは、SimpleDateFormatクラスを使用して文字列解析(テキスト→日付)およびフォーマット(日付→テキスト)を行うことが出来ます。
※今回使用するDateFormatクラスのパッケージは、java.text.SimpleDateFormatになっています。

同じような日付のフォーマット・解析ができるDateFormatクラスの紹介はこちらでやっているので、続けて確認してください。

SimpleDateFormatでの日付フォーマット

フォーマット日付または時刻のコンポーネント表示出力例
G紀元テキストG:西暦
yy:2021年12月31日→2021
yy:2021年12月31日→21
yyyy:2021年12月31日→2021
Y暦週の基準年Y:2021年12月31日→2022
YY:2021年12月31日→22
YYYY:2021年12月31日→2022
MM:2021年4月1日→4
MM:2021年4月1日→04
MMM:2021年4月1日→4月
L年における月(スタンドアロン形式)M:2021年4月1日→4
MM:2021年4月1日→04
MMM:2021年4月1日→4月
w年における週数値w:2021年4月1日→14
ww:2021年4月1日→14
www:2021年4月1日→014
※wの数0埋めになる
W月における週数値W:2021年4月1日→1
WW:2021年4月1日→01
WWW:2021年4月1日→001
※Wの数0埋めになる
D年における日数値D:2021年4月1日→91
DD:2021年4月1日→91
DDD:2021年4月1日→091
※Dの数0埋めになる
d月における日数値d:2021年4月1日→1
dd:2021年4月1日→01
ddd:2021年4月1日→001
※dの数0埋めになる
F月における曜日数値F:2021年4月1日→1
FF:2021年4月1日→01
FFF:2021年4月1日→001
※dの数0埋めになる
E曜日の名前テキストE:2021年4月1日→木
EEEE:2021年4月1日→木曜日
u曜日の番号(1 =月曜、…、7 =日曜)数値u:2021年4月1日→4
uu:2021年4月1日→04
uuu:2021年4月1日→004
※uの数0埋めになる
a午前/午後テキストa:11:30→午前
H一日における時(0 – 23)数値H:11:30→11
HH:11:30→11
HHH:11:30→011
※Hの数0埋めになる
k一日における時(1 – 24)数値k:11:30→11
kk:11:30→11
kkk:11:30→011
※kの数0埋めになる
K午前/午後の時(0 – 11)数値K:11:30→11
KK:11:30→11
KKK:11:30→011
※Kの数0埋めになる
h午前/午後の時(1 – 12)数値h:11:30→11
hh:11:30→11
hhh:11:30→011
※hの数0埋めになる
m数値m:11:30→30
mm:11:30→30
mmm:11:30→030
※mの数0埋めになる
s数値s:11:30:10→10
ss:11:30:10→10
sss:11:30:10→010
※sの数0埋めになる
Sミリ秒数値S:11:30:10:11→11
SS:11:30:10:11→11
SSS:11:30:10:11→011
※Sの数0埋めになる
zタイムゾーン一般的なタイムゾーンz:日本標準時→JST
zzzz:日本標準時→日本標準時
ZタイムゾーンRFC 822タイムゾーンZ:日本標準時→+0900
XタイムゾーンISO 8601タイムゾーンX:日本標準時→+09
XX:日本標準時→+0900
XXX:日本標準時→+09:00

SimpleDateFormatクラスの主要メソッド

インスタンスの生成方法

SimpleDateFormatクラスは、new演算子を使用してインスタンスを生成します。
インスタンス生成時に使用したいフォーマットを使用して初期化を行います。

使用例

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

フォーマットの変更方法

インスタンスに設定されているフォーマットを変更したい場合は、applyPattern メソッドを使用してフォーマットの変更を行うことができます。

使用例

sdf.applyPattern("yyyy年MM月dd日 HH時mm分ss秒");

Date型をフォーマットした文字列に変更する方法

Date型をフォーマットした文字列に変換する場合は、format メソッドを使用して変換を行うことができます。

使用例

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(new Date()));

結果

2022/11/17 12:00:00

文字列をDate型に変換する方法

文字列を指定したフォーマットにてDate型に変換する場合は、parse メソッドを使用して変換を行うことができます。

使用例

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.parse("2022/11/17 12:00:00"));

結果

Thu Nov 17 12:00:00 JST 2022

まとめ

日付をフォーマット指定して文字列に変換やDate型に変換する方法を説明しました。
画面から入力された値をDate型に変換する際や、データベースの値を表示する際に使用するなど、プログラムを行う上で使う頻度が多いので、この機会に覚えていってください。

入門
おすすめ書籍
現役エンジニアの気ままブログ

コメント

タイトルとURLをコピーしました