こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 Javaで日時のフォーマットを扱うことができるSimpleDateFormatクラスについて
- SimpleDateFormatクラスとは
- SimpleDateFormatクラスを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
IntelliJ IDEAのエディション | Community(無料版) |
IntelliJ IDEAのバージョン | 2021.3.2 |
プロジェクト | Javaプロジェクト |
SDK | Oracle OpenJDK version17.0.2 |
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
SimpleDateFormatクラスとは
SimpleDateFormatクラスとは、日時のフォーマットを扱うことができるクラスです。
SimpleDateFormatクラスを使えば、
- 日付(Dateクラス)→文字列(String型)
- 文字列(String型)→日付(Dateクラス)
の変換ができます。
Dateクラスについては、こちらの記事をご参考ください。
SimpleDateFormatクラスを使うためには
1 |
import java.text.SimpleDateFormat; |
をインポートする必要があります。
SimpleDateFormatクラスのコンストラクタ
SimpleDateFormatクラスのコンストラクタを解説します。
コンストラクタ | 説明 |
---|---|
SimpleDateFormat() | 引数なし。 デフォルトの「yy/MM/dd H:mm」のフォーマットでSimpleDateFormatオブジェクトが生成される |
SimpleDateFormat(String pattern) | 第一引数のpatternに日時のフォーマットを指定。 指定したフォーマットのSimpleDateFormatオブジェクトが生成される |
指定できる日付フォーマットのまとめ
SimpleDateFormatクラスに指定できる日付フォーマットをまとめました。
指定できる文字 | 概要 | 書き方パターン | 表示サンプル |
---|---|---|---|
G | 紀元 | G | 西暦 |
y | 年 | y | 2022年→2022 |
yy | 2022年→22 | ||
M | 月 | M | 2月→2 |
MM | 2月→02 | ||
D | 年における日 | D | 2月25日→56 |
DDD | 2月25日→056 | ||
d | 月における日 | d | 2月1日→1 |
dd | 2月1日→01 | ||
w | 年における週 | w | 2022年2月25日→9 |
ww | 2022年2月25日→09 | ||
W | 月における週 | W | 2022年2月25日→4 |
WW | 2022年2月25日→04 | ||
F | 月の何回目の曜日なのか | F | 2022年2月25日→4 ※2月で4回目の金曜日であるため |
E | 曜日 | E | 2022年2月25日(金曜)→金 |
a | 午前午後 | a | 14時50分→午後 |
h | 午前/午後の時(1~12) | h | 14時→2 |
hh | 14時→02 | ||
H | 1日における時(0~23) | H | 7時→7 |
HH | 7時→07 | ||
m | 分 | m | 2分→2 |
mm | 2分→02 | ||
s | 秒 | s | 3秒→3 |
ss | 3秒→03 | ||
S | ミリ秒 | S | 16ミリ秒→16 |
SSS | 16ミリ秒→016 |
では、次の章で実際に使ってみます。
SimpleDateFormatクラスを解説するプログラムの概要
SimpleDateFormatクラスを解説するプログラムでは、使う頻度が高いであろうformatメソッドを使います。
formatメソッドは引数の日付を指定されているフォーマットに変換するメソッドです。
- コンストラクタに引数なし
- コンストラクタに引数あり
の2パターンでSimpleDateFormatクラスのオブジェクトを作成します。
Dateクラスのオブジェクトをそれぞれのフォーマットで変換して表示させ、どのように表されるかを確認します。
解説で使うJavaプログラムは、Sampleプロジェクトのsampleパッケージ内にある、とします。
Javaサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package sample; import java.text.SimpleDateFormat; import java.util.Date; public class SampleDate { public static void main(String[] args){ Date now = new Date(); System.out.println("変換前:" + now); SimpleDateFormat dateFormat = new SimpleDateFormat(); System.out.println("指定フォーマット 指定なし:" + dateFormat.format(now)); SimpleDateFormat dateFormat1 = new SimpleDateFormat("G y年M月d日E a h時m分s秒SSSミリ秒"); System.out.println("指定フォーマット G y年M月d日E a h時m分s秒SSSミリ秒:" + dateFormat1.format(now)); } } |
実行結果
Javaプログラムを実行します。
IntelliJ IDEAでJavaプログラムを実行するやり方は、こちらの記事をご参考ください。
1 2 3 |
変換前:Sun Feb 27 18:17:03 JST 2022 指定フォーマット 指定なし:2022/02/27 18:17 指定フォーマット G y年M月d日E a h時m分s秒SSSミリ秒:西暦 2022年2月27日日 午後 6時17分3秒338ミリ秒 |
Dateクラスをそれぞれの指定したフォーマットに文字列に変換できていることが確認できました。
まとめ:SimpleDateFormatクラスを使ってみよう!
以上がJavaの日時のフォーマットを扱うことができるSimpleDateFormatクラスについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント