【保存版】Javaの日時フォーマット完全ガイド|LocalDateTimeの整形方法と実用サンプル

Java

Javaでアプリ開発をしていると、ログ出力や画面表示、ファイル名の生成など、日時を扱う場面がたくさん出てきますね。

でも、こんな悩みはありませんか?

  • 「日時フォーマットがうまくいかない」
  • 「エラーになってしまう」
  • 「どう書けばいいのか忘れてしまう」

今回は、Javaでの日時フォーマット方法を初心者にもわかりやすく解説します。

2025年時点で主流となっているjava.timeパッケージを中心に、実用的なコード例とベストプラクティスも紹介しますよ!


スポンサーリンク

Javaで日時を扱う基本知識

まずは基本から押さえていきましょう。

Javaでは、以前はDateSimpleDateFormatが使われていました。でも、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
mm00〜59
ss00〜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

LocalDateHH:mmなど時刻をフォーマットしようとすると発生します。

注意点

  • DateTimeFormatter.ofPattern()大文字・小文字が厳密です(MMmmは意味が違う!)
  • スレッドセーフなので、マルチスレッド環境でも安心して使えます

エラーが出たときは、まずフォーマットパターンと実際のデータが合っているかチェックしてみてください。


6. まとめ

Javaでの日時フォーマットは、java.time.format.DateTimeFormatterを使えばシンプルかつ柔軟に対応できます。

日付の整形と解析(パース)を正しく使い分けることで、ログ出力やユーザー表示の精度がぐっと上がります。

ポイントおさらい

  • Java 8以降はjava.timeパッケージを使おう
  • DateTimeFormatterで日時を自由に整形
  • パターン記号の違いに注意(MMmm
  • パースやフォーマット処理で例外対策も忘れずに!

最初は覚えることが多く感じるかもしれませんが、一度慣れてしまえば直感的に使えるようになります。

まずは基本的なパターンから試してみて、少しずつ応用していくのがおすすめです。

コメント

タイトルとURLをコピーしました