カテゴリ: Java 更新日: 2025/11/27

JavaのLocalDateTime.formatメソッドを完全解説!初心者でもわかる日時フォーマット入門

LocalDateTimeのformatメソッド
LocalDateTimeのformatメソッド

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

生徒

「先生、Javaで日時を好きな形に表示したいんですがどうすればいいですか?」

先生

「それならjava.timeパッケージのLocalDateTimeクラスにあるformatメソッドを使うといいよ。フォーマッタを指定すれば自由に文字列に変換できるんだ。」

生徒

「例えば『2025年09月23日 10時30分』みたいに和暦風や好きな形式にできるんですか?」

先生

「もちろん!DateTimeFormatterを指定することでいろいろなパターンで表示できるよ。」

1. java.timeパッケージの役割

1. java.timeパッケージの役割
1. java.timeパッケージの役割

java.timeパッケージはJava8から追加された日付と時刻を扱う標準APIで、従来のDateSimpleDateFormatよりも安全で直感的に操作できる仕組みが整っています。日時の計算や比較、文字列への変換などを強力にサポートしています。

2. LocalDateTimeクラスの特徴

2. LocalDateTimeクラスの特徴
2. LocalDateTimeクラスの特徴

LocalDateTimeは日付と時刻を保持するクラスで、タイムゾーンを含まないのが特徴です。例えば「2025年9月23日10時30分」をそのままオブジェクトとして表現できます。予約アプリやスケジュール管理など幅広いシステムで利用されています。

3. formatメソッドとは

3. formatメソッドとは
3. formatメソッドとは

formatメソッドはLocalDateTimeの日時を文字列に変換するためのメソッドです。指定したDateTimeFormatterに従って整形されるため、自由自在にフォーマットを設定できます。


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

public class FormatExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String formatted = now.format(formatter);
        System.out.println(formatted);
    }
}

2025/09/23 10:30:45

4. よく使われるフォーマットパターン

4. よく使われるフォーマットパターン
4. よく使われるフォーマットパターン

日時の表示にはいくつかの代表的なパターンがあります。以下はよく使われる形式です。

  • yyyy-MM-dd HH:mm:ss → 2025-09-23 10:30:00
  • yyyy年MM月dd日 HH時mm分 → 2025年09月23日 10時30分
  • E yyyy/MM/dd → 火 2025/09/23

5. formatメソッドの応用例

5. formatメソッドの応用例
5. formatメソッドの応用例

フォーマットは業務システムでも多用されます。請求書に印字する日付を「2025年09月23日」と出力したり、ログファイルに「2025-09-23T10:30:00」とISO形式で記録するなど、用途によって使い分けることが可能です。


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

public class InvoiceExample {
    public static void main(String[] args) {
        LocalDateTime date = LocalDateTime.of(2025, 9, 23, 0, 0);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        System.out.println("請求日: " + date.format(formatter));
    }
}

請求日: 2025年09月23日

6. Localeを利用した国際化

6. Localeを利用した国際化
6. Localeを利用した国際化

DateTimeFormatterLocaleを指定することで、英語やフランス語など各国の形式で出力することも可能です。海外向けのシステムや多言語対応のアプリでは欠かせない機能です。


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

public class LocaleExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, MMMM dd, yyyy", Locale.US);
        System.out.println(now.format(formatter));
    }
}

Tuesday, September 23, 2025

7. formatと業務システムでの実践利用

7. formatと業務システムでの実践利用
7. formatと業務システムでの実践利用

日付のフォーマットはシステム開発においてとても重要です。例えば予約確認メールでは「2025年09月23日 10時30分開始」と丁寧に表示した方が利用者に優しいです。データベース保存用には標準化されたフォーマットを使うことでシステム間の連携もスムーズになります。

8. formatメソッドの注意点

8. formatメソッドの注意点
8. formatメソッドの注意点

formatを使う際はフォーマットパターンが正しくないとIllegalArgumentExceptionが発生します。小文字と大文字が区別されるので「MM(月)」と「mm(分)」を間違えると意図しない表示になります。初心者がつまずきやすいポイントなので覚えておきましょう。

まとめ

まとめ
まとめ

今回の記事では、JavaのLocalDateTimeformatメソッドを使った日時フォーマットの基本から応用までを丁寧に確認し、日時を扱う場面で必要になる知識を幅広く整理しました。日付と時刻を扱う処理は多くのアプリケーションに欠かせない要素であり、予約管理、業務処理、レポート生成、ログ記録など、さまざまな用途において正確で読みやすい日時表現が求められます。java.timeパッケージは従来のDateCalendarを扱う際の複雑さを解消し、直感的で安全な設計が採用されているため、初心者であっても扱いやすく、また実務でも安心して利用できる基盤となっています。 LocalDateTimeDateTimeFormatterを組み合わせることで、「yyyy/MM/dd HH:mm:ss」「yyyy年MM月dd日 HH時mm分」「E yyyy/MM/dd」など、開発者が自由に構成できる表示形式を簡単に生成することができます。フォーマットパターンの選び方によっては、利用者向けの柔らかい表示やログ向けの厳密な書式など、目的に応じた柔軟な出力が可能になります。特に日本語での年月日時分表示や、曜日を含んだ形式などは日常的にも馴染みが深く、システム利用者が読みやすい形に整えることでサービスの使いやすさ向上にもつながります。 また、業務システムでよく登場する「請求日」「発送日」「予約日時」などの記録には、フォーマットメソッドが非常に重宝されます。ミスが許されない重要なデータであるため、年月日と時刻が正しい形で整形されていることが求められ、フォーマッタの誤りがあると全体の信頼性に影響することもあります。そのため、パターン文字の大文字と小文字の違いや、「MM(月)」と「mm(分)」の違い、曜日の表現など、基本的ながら重要な知識を正しく理解しておくことが実務上でも大切です。 フォーマットは単純な文字列変換だけでなく、海外向けアプリや外国語対応のシステムでも使用されます。Localeを指定することで、英語、フランス語、ドイツ語、中国語など、国ごとの自然な表記に切り替えることができ、国際化対応で広く利用されるテクニックとなります。日本語システムと海外システムを共存させる開発現場では、日時の扱い方を統一しておくことがとても重要であり、java.timeの設計はその点でも優れています。 さらに、LocalDateTimeで扱う日時はタイムゾーンを持たないため、サーバ処理・予約処理・日付の比較など、多くの用途で扱いやすい形式です。必要に応じてZonedDateTimeOffsetDateTimeと使い分けることで、大規模アプリケーションでも正確な日時管理が行えます。今回の記事で紹介したような基本的なフォーマット利用を理解しておくと、日時計算や差分計算、タイムゾーン処理など、より高度な日時処理にもスムーズに進めるようになります。 以下に、記事内容を踏まえたサンプルコードを用意しました。フォーマットの応用や日本語形式、作業でよく使われるパターンをまとめていますので、復習や実務でのテンプレートとして参考にしてみてください。

サンプルプログラム:よく使うフォーマットをまとめて確認


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

public class FormatSummaryExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        DateTimeFormatter jp = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分");
        DateTimeFormatter iso = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
        DateTimeFormatter us = DateTimeFormatter.ofPattern("EEEE, MMMM dd, yyyy", Locale.US);

        System.out.println("日本語形式 : " + now.format(jp));
        System.out.println("ISO形式 : " + now.format(iso));
        System.out.println("英語形式 : " + now.format(us));
    }
}

このサンプルでは日本語形式、ISO形式、英語形式を並べて出力しており、目的に応じてフォーマッタを切り替えるだけで多様な日時表現を実現できることがわかります。こうした柔軟さはLocalDateTime.formatの大きな魅力であり、日時を扱うプログラム設計では欠かせない知識です。

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

生徒

「今日の記事を読んで、日時を好きな形で表示できるのってすごく便利だと感じました!特に日本語の『2025年09月23日』みたいな表示はアプリでもよく見ます。」

先生

「そうだね。フォーマットを正しく使えば利用者に伝わりやすい表示ができるし、ログやデータベースでは統一した書式を保つことが大切になるよ。」

生徒

「Localeを使うと英語や他の言語にも対応できるのが驚きでした。海外向けサービスなら必須ですね。」

先生

「その通り。日時の表現は国ごとに違うから、それを自動で切り替えられる仕組みはとても役立つんだ。フォーマットのパターン文字を間違えないようにだけ注意してね。」

生徒

「MMとmmの違いは絶対に覚えておきます!大文字が月で小文字が分ですね。」

先生

「その理解で完璧だよ。今日の内容がしっかり身につけば、日時処理で困ることは格段に減るはずだ。どんどんコードを書いて慣れていこう。」

カテゴリの一覧へ
新着記事
JavaのHashSetのaddメソッドを完全ガイド!初心者でもわかるセットの使い方
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
Spring Securityでフォームログインを実装!ログイン・ログアウト・Remember-Meの設定方法まとめ
Javaの@Validアノテーションを徹底解説!初心者でもわかる入力値検証の基本
人気記事
No.1
Java&Spring記事人気No1
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのDateクラスの使い方を完全ガイド!初心者でもわかる日付操作
No.4
Java&Spring記事人気No4
Javaのラムダ式anyMatchの使い方:containsやList検索の実践テクニック
No.5
Java&Spring記事人気No5
Javaのラムダ式でListを抽出&変換!filterとmapでスマートに操作
No.6
Java&Spring記事人気No6
JSPで使えるJavaコードの書き方を徹底解説!初心者向けルールと制限ポイント
No.7
Java&Spring記事人気No7
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.8
Java&Spring記事人気No8
Javaのcountの使い方を完全ガイド!ラムダ式で件数カウントの定石をマスターしよう