こんにちは。たいら(@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クラスについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント