この記事では、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 を使う事で、簡単に日付のフォーマットを行う事ができます。
0 件のコメント:
コメントを投稿