カテゴリ: Java 更新日: 2026/01/10
PR
独学でJavaを学んでいる方向け
「実務レベルに到達できるか不安」「1人だと詰まることが多い」場合は、 実践重視で学べる環境を一度確認しておくのも一つの手です。
EBAエデュケーション |学習内容・サポートを見る

JavaのDateTimeFormatterの使い方を完全ガイド!初心者でもわかる日付フォーマットの基本

DateTimeFormatterクラス
DateTimeFormatterクラス

先生と生徒の会話形式で理解しよう

生徒

「Javaで日付や時間を見やすい形で表示したいんですが、どうすればいいですか?」

先生

「それならDateTimeFormatterクラスを使うと便利ですよ。Javaの標準ライブラリで提供されているクラスです。」

生徒

「DateTimeFormatterって、どんなふうに使うんですか?」

先生

「それでは、DateTimeFormatterの使い方やカスタム書式などを詳しく見ていきましょう!」

1. java.time.formatパッケージとは

1. java.time.formatパッケージとは
1. java.time.formatパッケージとは

Javaで日付や時間を操作するためのクラスは、java.timeパッケージに集約されています。その中でも、java.time.formatパッケージは、日付や時刻をフォーマットしたり、文字列から解析(パース)するためのクラスを提供しています。

このパッケージの中でも特に重要なのがDateTimeFormatterクラスです。これは、日付と時刻を任意の形式で文字列に変換したり、逆に文字列から日付・時刻を生成するための便利なクラスです。

2. DateTimeFormatterクラスの基本的な使い方

2. DateTimeFormatterクラスの基本的な使い方
2. DateTimeFormatterクラスの基本的な使い方

Javaでは、LocalDateLocalDateTimeといった日時オブジェクトを使って日付や時間を扱います。それらを「見やすい形」に変換したい場合にDateTimeFormatterを使います。

例えば、現在の日付を「2025/09/04」のように表示したい場合は以下のように書きます。


import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateFormatExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        String formatted = date.format(formatter);
        System.out.println(formatted);
    }
}

2025/09/04

ofPattern()メソッドを使うことで、任意のフォーマット(パターン)を指定できます。

PR

将来を見据えて、+αのスキルを身につけたい方へ

JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。

AIを学ぶならアイデミープレミアム

3. DateTimeFormatterでよく使う書式パターン

3. DateTimeFormatterでよく使う書式パターン
3. DateTimeFormatterでよく使う書式パターン

DateTimeFormatterで使える書式の代表的なものをまとめると以下の通りです。

  • yyyy:4桁の西暦(例:2025)
  • MM:2桁の月(例:09)
  • dd:2桁の日(例:04)
  • HH:24時間表記の時(例:15)
  • mm:分(例:30)
  • ss:秒(例:45)

これらを組み合わせることで、自由な形式で日付や時間を表示できます。

4. LocalDateTimeと組み合わせたフォーマット例

4. LocalDateTimeと組み合わせたフォーマット例
4. LocalDateTimeと組み合わせたフォーマット例

LocalDateTimeを使えば、日付と時刻の両方を扱うことができます。


import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateTimeFormatExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒");
        String result = now.format(formatter);
        System.out.println(result);
    }
}

2025年09月04日 14時55分00秒

日本語を混ぜた書式も指定できるので、見やすいフォーマットが作れます。

5. 文字列から日付・時刻を解析する方法

5. 文字列から日付・時刻を解析する方法
5. 文字列から日付・時刻を解析する方法

DateTimeFormatterは、文字列から日時を解析(パース)することも可能です。これにはparse()メソッドを使用します。


import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class ParseDateExample {
    public static void main(String[] args) {
        String input = "2025/09/04";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        LocalDate parsedDate = LocalDate.parse(input, formatter);
        System.out.println(parsedDate);
    }
}

2025-09-04

書式パターンと文字列の形式が一致していないと例外が発生するので注意が必要です。

6. DateTimeFormatterの定数も便利!

6. DateTimeFormatterの定数も便利!
6. DateTimeFormatterの定数も便利!

DateTimeFormatterには、あらかじめ用意された定数もあります。よく使われるフォーマットがすぐに使えるので、初心者にも便利です。

  • DateTimeFormatter.ISO_LOCAL_DATE(例:2025-09-04)
  • DateTimeFormatter.ISO_DATE_TIME(例:2025-09-04T14:55:00)
  • DateTimeFormatter.BASIC_ISO_DATE(例:20250904)

これらを使うとパターン指定が不要になるため、シンプルな処理に向いています。

7. カスタムフォーマットのよくあるエラーと注意点

7. カスタムフォーマットのよくあるエラーと注意点
7. カスタムフォーマットのよくあるエラーと注意点

カスタムフォーマットを使う際によくあるミスとしては、以下のようなものがあります。

  • 月(MM)と分(mm)を間違える
  • 日付に不要なスペースが入っている
  • 日付と時刻の区切りを入れ忘れる

例えば「yyyy-mm-dd」とすると「mm」が分として認識されるため、月ではなく「00」と表示されてしまいます。

8. DateTimeFormatterと他のAPIの違い

8. DateTimeFormatterと他のAPIの違い
8. DateTimeFormatterと他のAPIの違い

Java8以前では、SimpleDateFormatが使われていましたが、スレッドセーフでないなどの問題がありました。DateTimeFormatterは、スレッドセーフで安全に使えるのが大きな利点です。

そのため、現在のJavaプログラミングではjava.time.formatパッケージのDateTimeFormatterを使うのが推奨されています。

9. WebアプリやAPIでの使いどころ

9. WebアプリやAPIでの使いどころ
9. WebアプリやAPIでの使いどころ

DateTimeFormatterは、Spring BootやServletなどのJava Webアプリケーションでも活用されます。ユーザーが入力した日付をサーバー側で整形したり、DBに登録する前に正しい形式で保持するために使われることが多いです。

また、REST APIで日時情報をJSON形式に変換する際も、DateTimeFormatterを使ってISO形式やカスタム形式に整形することができます。

10. Javaの日付フォーマットをマスターしよう

10. Javaの日付フォーマットをマスターしよう
10. Javaの日付フォーマットをマスターしよう

DateTimeFormatterは、Javaで日付と時間を扱う上でとても重要なクラスです。初心者の方でも基本的なフォーマットやパースの方法を覚えれば、アプリ開発で役立ちます。

Javaのjava.time.formatパッケージは、他にも日付と時刻のロケール対応や複雑な書式設定などが可能です。まずはDateTimeFormatterからしっかり使いこなせるようにしましょう。

まとめ

まとめ
まとめ

DateTimeFormatterの使い方と活用ポイントの振り返り

Javaで日付や時刻を操作するには、java.time.formatパッケージの中にあるDateTimeFormatterクラスが欠かせません。この記事では、DateTimeFormatterの基本からカスタムフォーマット、定数を使った便利なフォーマット、さらに文字列から日付をパースする方法まで、初心者にもわかりやすくJavaの日付フォーマット操作を解説しました。

特にofPattern()メソッドの活用や、LocalDateLocalDateTimeとの組み合わせにより、日付や時間の表示形式を柔軟にカスタマイズできる点は、Javaアプリ開発において非常に実用的です。また、ISO標準のフォーマットを定数で簡単に使える利便性も押さえておきたいポイントでした。

日付フォーマットの設定は、WebアプリケーションやAPI開発での出力形式の統一に役立つだけでなく、ログ出力やファイル名の生成など幅広い場面で活躍します。フォーマット指定時の注意点としては、月(MM)と分(mm)の混同ミスやパターンとの不一致による例外などが挙げられます。

Javaでは以前SimpleDateFormatが主流でしたが、現在ではDateTimeFormatterが主流となっており、スレッドセーフであることからも、業務システムやマルチスレッド処理に対応した開発に最適です。さらに、Spring Bootなどのフレームワークでも、DateTimeFormatterを活用した日付変換の仕組みがベースとなっているため、Javaを学ぶ上で避けては通れない重要なクラスといえます。

サンプル:ログファイル名に日付を付ける応用例

実践的な例として、ログファイル名に日付を入れるコードを紹介します。


import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class LogFileNameExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss");
        String fileName = "log_" + now.format(formatter) + ".txt";
        System.out.println(fileName);
    }
}

log_20250904_153025.txt

このように、日付と時刻を組み合わせてファイル名を自動生成することで、ログファイルの管理や識別がしやすくなります。アプリケーションのバッチ処理や監視システムなどでも活用できるテクニックです。

先生と生徒の振り返り会話

生徒

「Javaで日付を自由な形式に変換できるようになってきました!DateTimeFormatterって便利ですね。」

先生

「その通りです。DateTimeFormatterを使えば、日付や時刻を自在にフォーマットできるだけでなく、文字列からも日付を解析できます。」

生徒

「特に、ofPatternで日本語を混ぜた表示ができるのが面白かったです!あと、エラーになりやすいmmとMMの違いも覚えておきます。」

先生

「その調子です。DateTimeFormatterをマスターすれば、アプリの画面表示もログの整形もバッチリですね。」

生徒

「はい!次はAPIと連携して、JSONの日時整形にも挑戦してみたいです。」

先生

「とても良い考えです。REST APIでもDateTimeFormatterは大活躍しますからね。ぜひ次のステップに進みましょう!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JavaのDateTimeFormatterはどのパッケージに含まれていますか?

DateTimeFormatterは、java.time.formatパッケージに含まれており、日付や時間をフォーマットしたり、文字列から解析するために使用されます。

Javaで日付を「yyyy/MM/dd」の形式で表示するにはどうすればいいですか?

DateTimeFormatter.ofPattern("yyyy/MM/dd")を使って、LocalDateやLocalDateTimeのインスタンスを指定の形式に変換することができます。

Java Silver SE17(1Z0-825)の演習量を重視したい人には、 定番の問題集がこちらです。

徹底攻略 Java SE 17 Silver 問題集をAmazonで見る

※ Amazonアソシエイト・プログラムを利用しています

カテゴリの一覧へ
新着記事
PR

JavaやLinuxの検証環境に
低コストで使えるVPS

JavaのVectorクラスの使い方を完全ガイド!初心者でもわかるコレクションの基本
Spring Bootのディレクトリ構成を完全ガイド!初心者向けにjava・resources・static・templatesの役割を解説
Spring Boot + IntelliJ IDEAの始め方を完全ガイド!JDK設定・起動構成・デバッグまで解説
Gradle vs Maven どっちを選ぶ?Spring Bootの依存管理・ビルド設定の基本
PR 未経験からITエンジニアを目指す方へ

Javaを学んでいるけど、「このまま未経験で就職できるか不安」という20代向け。 学歴不問・無料サポートの就職支援という選択肢があります。

Tamesy |無料で面談予約
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JavaのIntegerクラスparseIntメソッド完全ガイド!初心者でもわかる文字列から数値変換
No.3
Java&Spring記事人気No3
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得
No.4
Java&Spring記事人気No4
JavaのEnumクラスのordinalメソッドを徹底解説!初心者でもわかる列挙型の順序番号
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.7
Java&Spring記事人気No7
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.8
Java&Spring記事人気No8
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
PR

ローカルPCに依存しない開発環境という選択肢

Java・Linuxの検証や学習環境を、クラウド上ですぐに用意できます。

Java入門

Javaの基礎を体系的に学びたい場合は、文法だけでなく 「なぜそう書くのか」まで丁寧に解説されているため、 初心者でも理解しやすい定番の1冊です。

スッキリわかるJava入門 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Java実践

ジェネリクス、enum、シールクラスなどの型設計から、 関数型プログラミング(ラムダ式・Stream API)、 JVM制御やリフレクション、外部ライブラリの活用までを扱っており、 「Javaを使えるレベル」へ進むための内容が網羅されています。

スッキリわかるJava入門 実践編 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Spring入門

Spring Frameworkの全体像から、 Webアプリ開発で必要となる主要機能までを 体系的に解説している定番の入門書です。

Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

※ 紙の書籍・電子書籍どちらでも購入できます

PR 実務経験のあるエンジニア向け

Javaなどの実務経験があり、次のキャリアを検討している方向け。 IT・ゲーム業界に特化した転職支援サービスという選択肢もあります。

転職ボックス |IT・ゲーム業界専門