Javaには日付を表示するときのフォーマットを設定することができます。この記事では、日付のフォーマットについて、
- 【基礎】SimpleDateFormatクラスの日付のフォーマットとは
- 【基礎】yyyy/MM/ddのフォーマットを設定する方法
- 【基礎】他の日付のフォーマットに変更する方法
- 【発展】日付をString型に変換する方法
- 【発展】日付パターンをチェックする方法
などの基礎から発展した使い方についても解説していきます。今回はそんな日付のフォーマット処理について、さまざまな方法をわかりやすく解説します!
この記事の目次
SimpleDateFormatクラスの日付パターンとは
日付のフォーマットを設定するには、SimpleDateFormatクラスを使用して、インスタンスの引数に日付フォーマットを指定する必要があります。
SimpleDateFormat sdf = new SimpleDateFormat(“フォーマットパターン”);
SimpleDateFormatクラスを使用するには、以下のパッケージをインポートします。
import java.text.SimpleDateFormat;
日付パターン文字列について表にまとめました。
文字 | 説明 | 出力例(記述例) |
---|---|---|
G | 紀元 | AD(G) |
y | 年 | 1996(yyyy); 96(yy) |
M | 月 | July(MMMM); Jul(MM); 07(MM) |
w | 年における週 | 27(ww) |
W | 月における週 | 2(W) |
D | 年における日 | 189(DDD) |
d | 月における日 | 10(dd) |
F | 月における曜日 | 2(F) |
E | 曜日の名前 | Tuesday(EEEEEEE); Tue(EEE); |
u | 曜日の番号(1:月曜、・・・7:日曜) | 1(u) |
a | 午前/午後 | PM(a) |
H | 一日における時(0 - 23) | 00(HH) |
k | 一日における時(1 - 24) | 24(kk) |
K | 午前/午後の時(0 - 11) | 00(KK) |
h | 午前/午後の時(1 - 12) | 12(hh) |
m | 分 | 30(mm) |
s | 秒 | 55(ss) |
S | ミリ秒 | 978(SSS) |
z | 一般的なタイムゾーン | Pacific Standard Time; PST; GMT-08:00 |
記述するパターン例については以下のとおりです。
パターン | 表示例 |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" | 2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ‘’yy” | Wed, Jul 4, '01 |
"h:mm a" | 12:08 PM |
日付パターンは、大文字と小文字が明確に区別されていますので、指定時には注意しましょう。なおオラクルの公式サイトには、日付パターンの詳細が記載されています。
https://docs.oracle.com/javase/jp/8/docs/api/java/text/SimpleDateFormat.html
yyyy/MM/ddのフォーマットで設定する方法
以下に“yyyy/MM/dd”の日付パターンでフォーマットを設定する方法を記述します。
import java.util.Calendar; import java.text.SimpleDateFormat; public class Main { public static void main(String[] args) { //Calendarクラスのオブジェクトを生成する Calendar cl = Calendar.getInstance(); //SimpleDateFormatクラスでフォーマットパターンを設定する SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); System.out.println(sdf.format(cl.getTime())); } }
実行結果:
2017/04/06
このサンプルコードでは、SimpleDateFormatクラスを使用して、引数に“yyyy/MM/dd”の日付パターンでフォーマットを指定しています。
そして、SimpleDateFormatクラスの日付パターンを返すformatメソッドを使用しています。引数にはCalendarクラスのgetTimeメソッドを指定して現在の日時を取得しています。
他の日付フォーマットに変更する方法
日付のフォーマットを変更する場合は、SimpleDateFormatクラスのapplyPatternメソッドを使用します。そしてSimpleDateFormatクラスのインスタンス同様、引数にフォーマットパターンを指定します。
以下に日付フォーマットを変更する方法を記述します。
import java.util.Calendar; import java.text.SimpleDateFormat; public class Main { public static void main(String[] args) { //カレンダークラスのオブジェクトを生成する Calendar cl = Calendar.getInstance(); //フォーマットを指定する SimpleDateFormat sdf = new SimpleDateFormat("変更前:yyyy/MM/dd"); System.out.println(sdf.format(cl.getTime())); //フォーマットをフォーマットを変更する sdf.applyPattern("変更後:yyyy年MM月dd日 E"); System.out.println(sdf.format(cl.getTime())); } }
実行結果:
変更前:2017/04/06 変更後:2017年04月06日 Thu
Calendarクラスのフォーマットについては、以下の記事でも詳しく解説しています!
