[JAVA]日付・時刻のフォーマットを行うSimpleDateFormatクラス

2019年3月20日水曜日

Java

t f B! P L

[JAVA]日付・時刻のフォーマットを行うSimpleDateFormatクラス

この記事では、Javaで日付・時刻のフォーマットを行うSimpleDateFormatクラスについて解説します。
フォーマットパターンの指定により、さまざまな形式で日付・時刻を表示できるようになります。

[JAVA]日付・時刻のフォーマットを行うSimpleDateFormatクラスのイメージ

サンプルコード

まずは、ときにく使ってみろという事で、SimpleDateFormatクラスを使って、日付・時刻のフォーマットを行うサンプルコードを見てみましょう。

  • 日付のフォーマット
import java.util.Calendar;
import java.text.SimpleDateFormat;

Date now = Calendar.getInstance().getTime(); //現在時刻を取得

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(sdf.format(now));
//-> 2019/12/31
  • 時刻のフォーマット
~ 中略 ~
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");
System.out.println(sdf.format(now));
//-> 12:59:59.999

フォーマットパターン

以下の表は、SimpleDateFormatクラスで用意されているパターンです。
大文字と小文字の違いによっても、意味が変わるので注意が必要です。

文字 説明
G 紀元 AD
y 1996, 96
M July, Jul, 07
w 年における週 27
W 月における週 2
D 年における日 189
d 月における日 10
F 月における曜日 2
E 曜日 Tuesday, Tue
a 午前/午後 PM
H 一日における時(0~23) 0
k 一日における時(1~24) 24
K 午前/午後の時(0~11) 0
h 午前/午後の時(1~12) 12
m 30
s 55
S ミリ秒 978
z タイムゾーン Pacific Standard Time, PST, GMT-08:00
Z タイムゾーン -0800

和暦でフォーマットする

SimpleDateFormat クラスは、西暦だけでなく、和暦でのフォーマットも出来ます。

//日本語ロケールを設定
Locale locale = new Locale("ja", "JP", "JP");
Date now = Calendar.getInstance().getTime(); //現在時刻を取得

SimpleDateFormat sdf = new SimpleDateFormat("GGGGy年M月d日", locale);
System.out.println(sdf.format(now));
//-> 平成30年/12/31

午前○分/午後○分および正午○分の形式でフォーマットする

午前○分/午後○分の形式でフォーマットする

~ 中略 ~
SimpleDateFormat sdf = new SimpleDateFormat("ah:mm");
System.out.println(sdf.format(now));
//-> 午後2時55分

正午○分の形式でフォーマットする

残念ならが、Javaで正午○分の形式で、フォーマットする事はできません。
SimpleDateFormat クラス以外でも探しましたが、なさそうです…
という事で自力で作成するしかなさそうなので、以下にサンプルコードを作成しました。

String format = cal.get(Calendar.HOUR_OF_DAY) == 12 ?
                   "正午mm分" :
                   "ah:mm";

まとめ

今回は、Javaでの日付フォーマットについて紹介しました。
SimpleDateFormat を使う事で、簡単に日付のフォーマットを行う事ができます。

スポンサーリンク

QooQ