Javaで日付型(Date型)から文字列型(String)へのフォーマットを指定してのデータ型の変換、
逆の文字列型(String)から日付型(Date型)へのデータ型変換を説明します。
日付型(Date型)から文字列型(String)
フォーマットを指定してDateからStringに変換する方法です
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SSS");
System.out.println(dateFormat.format(date));
実行結果
2021/07/13 21:14:38:732
フォーマットのパターン文字になります
| 文字 | 説明 | 例 |
|---|---|---|
| yy | 西暦年(2桁) | 2021年 → 21 |
| yyyy | 西暦年(4桁) | 2021年 → 2021 |
| M | 月 | 7月 → 7 |
| MM | 月(ゼロ埋め) | 7月 → 07 |
| D | 年に対する日 | 2021/01/13 → 13(2021年になって何日か) |
| DDD | 年に対する日(ゼロ埋め) | 2021/07/13 → 194(2021年になって何日か) |
| d | 月に対する日 | 2021/07/13 → 13(2021年7月になって何日か) |
| dd | 月に対する日(ゼロ埋め) | 2021/07/13 → 13(2021年7月になって何日か) |
| w | 年に対する週 | 2021/07/13 → 29(2021年になって何週か) |
| W | 月に対する週 | 2021/07/13 → 3(2021年7月になって何週か) |
| E | 曜日 | 2021/07/13 → 火 |
| F | その月の何回目の曜日か | 2021/07/13 → 2(2021/07の2回目の火曜日) |
| a | 午前午後 | 2021/07/13 21:28 → 午後 |
| h | 時(12時間表記) | 21:28 → 9 |
| hh | 時(12時間表記ゼロ埋め) | 21:28 → 09 |
| H | 時(24時間表記) | 9:28 → 9 |
| HH | 時(24時間表記ゼロ埋め) | 9:28 → 09 |
| m | 分 | 05:06 → 6 |
| mm | 分(ゼロ埋め) | 05:06 → 06 |
| s | 秒 | 05:06:07 → 7 |
| ss | 秒(ゼロ埋め) | 05:06:07 → 07 |
| S | ミリ秒 | 05:06:07:008 → 8 |
| SSS | ミリ秒(ゼロ埋め) | 05:06:07:008 → 008 |
文字列型(String)から日付型(Date型)
StringからDateへ変換するにはフォーマット指定でparseします。
String str = "2021/07/13 21:35:50";
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = dateFormat.parse(str);
System.out.println(date);
実行結果
Tue Jul 13 21:35:50 JST 2021
日付のフォーマットは大文字小文字で意味が変わってくるので、気をつけましょう。
