Java DateTimeFormatterパターンリファレンス

java.time APIのJava DateTimeFormatterパターンの完全ガイド。パターン文字、定義済みフォーマッター、ロケール対応フォーマット、SimpleDateFormatからの移行を解説。

Language-Specific

詳細な説明

Java DateTimeFormatter

Java 8はレガシーのSimpleDateFormatのモダンな代替として、java.timeパッケージにDateTimeFormatterを導入しました。スレッドセーフで不変であり、同じパターン文字規約をサポートします。

パターン文字

文字 意味 例
yyyy 年(4桁) 2026
MM 月(ゼロパディング) 02
MMM 月名(略語) Feb
MMMM 月名(完全) February
dd 日(ゼロパディング) 28
EEEE 曜日名(完全) Saturday
HH 24時間制の時 14
hh 12時間制の時 02
mm 分 30
ss 秒 00
SSS ミリ秒 123
a AM/PM PM
XXX オフセット(+HH:MMまたはZ) +09:00

定義済みフォーマッター

DateTimeFormatter.ISO_LOCAL_DATE       // 2026-02-28
DateTimeFormatter.ISO_LOCAL_DATE_TIME  // 2026-02-28T14:30:00
DateTimeFormatter.ISO_OFFSET_DATE_TIME // 2026-02-28T14:30:00+09:00
DateTimeFormatter.RFC_1123_DATE_TIME   // Sat, 28 Feb 2026 14:30:00 +0900

SimpleDateFormatからの移行

レガシーコードのSimpleDateFormatは同じパターン文字を使用しますが、スレッドセーフではありません。以下のように移行してください:

// 移行前(レガシー、スレッドセーフでない)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

// 移行後(モダン、スレッドセーフ)
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");

ユースケース

Java DateTimeFormatterはSpring Boot REST APIでの日付シリアライゼーション、JPAエンティティのタイムスタンプフォーマット、log4j/logbackの日付パターン、JDBCの日付処理、Apache Sparkの日付パース、Androidアプリの日付表示に使用されます。

試してみる — Date Format Reference & Tester

フルツールを開く →