Javaでアプリ開発をしていると、ログ出力や画面表示、ファイル名の生成など、日時を扱う場面がたくさん出てきますね。
でも、こんな悩みはありませんか?
- 「日時フォーマットがうまくいかない」
- 「エラーになってしまう」
- 「どう書けばいいのか忘れてしまう」
今回は、Javaでの日時フォーマット方法を初心者にもわかりやすく解説します。
2025年時点で主流となっているjava.time
パッケージを中心に、実用的なコード例とベストプラクティスも紹介しますよ!
Javaで日時を扱う基本知識

まずは基本から押さえていきましょう。
Javaでは、以前はDate
やSimpleDateFormat
が使われていました。でも、Java 8以降は次の新しいAPIが推奨されています。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
主要なクラス
LocalDateTime
: 日付と時刻(タイムゾーンなし)ZonedDateTime
: タイムゾーン付きの日時DateTimeFormatter
: 日時の書式設定(フォーマット)を行うクラス
新しいAPIは使いやすくて安全なので、これらを覚えておけば大丈夫です。
DateTimeFormatterの使い方
日時の整形(フォーマット)は、こんな感じで簡単にできます:
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String formatted = now.format(formatter);
System.out.println(formatted); // 例: 2025/05/22 14:30:00
パターンを変えることで、表示形式を自由に調整できるんです。便利ですよね!
主なフォーマットパターン一覧
よく使うパターンをまとめました。
パターン | 意味 | 例 |
---|---|---|
yyyy | 西暦4桁 | 2025 |
MM | 月(2桁) | 01〜12 |
dd | 日(2桁) | 01〜31 |
HH | 時(24時間制) | 00〜23 |
mm | 分 | 00〜59 |
ss | 秒 | 00〜59 |
a | 午前/午後 | AM / PM |
E | 曜日(短縮) | Mon, Tueなど |
z | タイムゾーン | JST, UTCなど |
この表を参考にすれば、必要な形式がすぐに作れます。
使用例:フォーマット&パース処理

実際のコード例を見てみましょう。
フォーマット(日時 → 文字列)
LocalDateTime dt = LocalDateTime.of(2025, 12, 1, 10, 15);
String str = dt.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分"));
System.out.println(str); // 出力: 2025年12月01日 10時15分
パース(文字列 → 日時)
String input = "2025/12/01 10:15:00";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime parsed = LocalDateTime.parse(input, fmt);
System.out.println(parsed); // 出力: 2025-12-01T10:15
フォーマットとパースは逆の処理なので、セットで覚えておくと良いですね。
よくあるエラーと注意点
実際に使っていると、こんなエラーに遭遇することがあります。
DateTimeParseException
フォーマットと入力文字列の形式が一致していないと発生します。
UnsupportedTemporalTypeException
LocalDate
でHH:mm
など時刻をフォーマットしようとすると発生します。
注意点
DateTimeFormatter.ofPattern()
は大文字・小文字が厳密です(MM
とmm
は意味が違う!)- スレッドセーフなので、マルチスレッド環境でも安心して使えます
エラーが出たときは、まずフォーマットパターンと実際のデータが合っているかチェックしてみてください。
6. まとめ
Javaでの日時フォーマットは、java.time.format.DateTimeFormatter
を使えばシンプルかつ柔軟に対応できます。
日付の整形と解析(パース)を正しく使い分けることで、ログ出力やユーザー表示の精度がぐっと上がります。
ポイントおさらい
- Java 8以降は
java.time
パッケージを使おう DateTimeFormatter
で日時を自由に整形- パターン記号の違いに注意(
MM
≠mm
) - パースやフォーマット処理で例外対策も忘れずに!
最初は覚えることが多く感じるかもしれませんが、一度慣れてしまえば直感的に使えるようになります。
まずは基本的なパターンから試してみて、少しずつ応用していくのがおすすめです。
コメント