カテゴリ: Java 更新日: 2026/03/21

JavaのLocalDateとformatメソッドの使い方を完全ガイド!初心者でもわかる日付のフォーマット

LocalDateのformatメソッド
LocalDateのformatメソッド

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

生徒

「Javaで日付を"2025年09月04日"みたいに好きな形式で表示したいんですけど、どうやるんですか?」

先生

「それならjava.timeパッケージのLocalDateクラスとformatメソッドを使えば、簡単に日付を好きな形式に変換できますよ。」

生徒

「なるほど!じゃあ、そのformatメソッドの使い方を詳しく教えてください!」

先生

「では、LocalDateformatの基本からやさしく説明していきましょう!」

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

「1. java.timeパッケージとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

Javaのjava.timeパッケージは、Java 8から追加された新しい日付と時間のAPIです。従来のjava.util.DateCalendarよりも使いやすく、安全で読みやすいコードが書けるようになりました。

java.timeパッケージには日付や時刻、期間、タイムゾーンなどを扱うためのクラスが豊富に用意されています。その中でも、年月日をシンプルに扱うのがLocalDateです。

2. LocalDateクラスとは?

2. LocalDateクラスとは?
2. LocalDateクラスとは?

LocalDateは「年月日」のみを扱うクラスで、時刻(時分秒)は含まれません。たとえば、「2025年9月4日」のような日付をコードで表現したいときに使います。

現在日付の取得や、特定の日付の作成も簡単です。


import java.time.LocalDate;

public class LocalDateSample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now(); // 現在の日付
        LocalDate birthday = LocalDate.of(2000, 5, 15); // 任意の日付
        System.out.println("今日: " + today);
        System.out.println("誕生日: " + birthday);
    }
}

3. formatメソッドとは?

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

formatメソッドは、LocalDateの日付を「文字列」に変換するために使うメソッドです。これにより、日付を「yyyy/MM/dd」や「yyyy年MM月dd日」など任意のフォーマットで出力できます。

このメソッドは、引数としてDateTimeFormatterというクラスのインスタンスを必要とします。

4. formatメソッドの基本的な使い方

「4. formatメソッドの基本的な使い方」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. formatメソッドの基本的な使い方
4. formatメソッドの基本的な使い方

formatメソッドで日付を文字列に変換するには、まずDateTimeFormatterを定義しておき、それを引数として渡します。以下がその基本的な例です。


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

public class FormatExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2025, 9, 4);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String formattedDate = date.format(formatter);
        System.out.println("フォーマット後の日付: " + formattedDate);
    }
}

実行結果は以下のようになります。


フォーマット後の日付: 2025年09月04日

5. よく使われる日付フォーマットのパターン

5. よく使われる日付フォーマットのパターン
5. よく使われる日付フォーマットのパターン

DateTimeFormatter.ofPatternでは、自由にフォーマットパターンを指定できます。以下はよく使われるパターンの例です。

  • yyyy/MM/dd → 2025/09/04
  • yyyy年MM月dd日 → 2025年09月04日
  • MM-dd-yyyy → 09-04-2025
  • dd MMM yyyy → 04 Sep 2025

表示形式を変えるだけで、ユーザーにとって見やすくなり、アプリケーションの使い勝手が向上します。

6. formatメソッドの実用例(Webアプリ・帳票・ログ)

6. formatメソッドの実用例(Webアプリ・帳票・ログ)
6. formatメソッドの実用例(Webアプリ・帳票・ログ)

実際の開発現場では、日付を「ユーザーに見せる」場面でformatメソッドが活躍します。

  • Webアプリケーションの画面での表示(例:「注文日:2025年09月04日」)
  • PDFやExcelなど帳票出力時の日付の整形
  • ログ出力の整形で見やすくする

ただし、フォーマットにミスがあるとエラーになるため、パターン指定には注意が必要です。

7. formatメソッドとLocaleの活用

「7. formatメソッドとLocaleの活用」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. formatメソッドとLocaleの活用
7. formatメソッドとLocaleの活用

フォーマットを多言語対応させたい場合は、Localeを組み合わせて使うこともできます。


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

public class FormatWithLocale {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2025, 9, 4);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.ENGLISH);
        System.out.println(date.format(formatter)); // 04 September 2025
    }
}

8. formatメソッド使用時の注意点

8. formatメソッド使用時の注意点
8. formatメソッド使用時の注意点

formatメソッドを使用する際の注意点をまとめます。

  • パターン文字列は正しく書くMM(月)とmm(分)を混同しないように注意!
  • NullPointerException:日付やフォーマッタがnullだと例外が発生する
  • タイムゾーンには対応していないLocalDateは時差を扱わない

まとめ

まとめ
まとめ

LocalDateとformatメソッドの重要ポイントを振り返る

Javaで日付を扱う場面は非常に多く、Webアプリケーション開発や業務システム開発、ログ出力、帳票出力などさまざまな場所で日付処理が必要になります。その中でもJava八以降で標準的に利用されているのがjava.timeパッケージです。このパッケージは従来のDateクラスやCalendarクラスの問題点を改善し、より安全で読みやすい日付処理を実現するために設計されています。

特に日付のみを扱うクラスとしてよく利用されるのがLocalDateです。LocalDateは年月日だけを管理するシンプルなクラスであり、時刻やタイムゾーンの概念を含まないため、誕生日や注文日、登録日などの日付データを扱う場合に非常に便利です。Java初心者が日付処理を学ぶ際には、まずLocalDateの基本的な使い方を理解することが重要です。

そしてLocalDateと組み合わせてよく利用されるのがformatメソッドです。formatメソッドは日付オブジェクトを文字列として出力する際に使用します。日付をそのまま表示するだけではなく、アプリケーションの用途に合わせて表示形式を自由に変更できる点が大きな特徴です。例えば西暦年月日形式やスラッシュ区切り形式、海外向けの英語表記など、さまざまな形式に変換することができます。

DateTimeFormatterを利用した日付フォーマット

LocalDateのformatメソッドを利用する場合にはDateTimeFormatterクラスを使用します。DateTimeFormatterは日付や時間の表示形式を指定するためのクラスであり、フォーマットパターンを指定することで柔軟な日付表示が可能になります。JavaのDateTimeFormatterでは年、月、日を表すパターン文字を組み合わせて指定することで、簡単にカスタマイズされた日付フォーマットを作成できます。

例えばyyyy年MM月dd日という形式を指定すれば、日本語で読みやすい日付表示を作ることができます。またyyyy/MM/ddのように指定すればシステムログやデータ処理でよく使われる標準的な日付形式になります。このようにformatメソッドを理解しておくことで、Javaの日付処理の幅が大きく広がります。

実務のJava開発ではユーザーに表示する日付形式を整えることが非常に重要です。例えば注文履歴画面や予約管理画面では、日付が読みやすく表示されていることがユーザー体験の向上につながります。そのためJavaのLocalDateとformatメソッドを理解することは、実践的なプログラミングスキルとして非常に価値があります。

LocalDateとformatメソッドのサンプルプログラム

ここではLocalDateとDateTimeFormatterを組み合わせて複数の形式で日付を表示するサンプルプログラムを紹介します。Javaの日付フォーマットの基本を理解するための参考として確認してみましょう。


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

public class LocalDateFormatSummary {
    public static void main(String[] args) {

        LocalDate date = LocalDate.of(2025, 9, 4);

        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日");

        String result1 = date.format(formatter1);
        String result2 = date.format(formatter2);

        System.out.println("スラッシュ形式: " + result1);
        System.out.println("日本語形式: " + result2);
    }
}

スラッシュ形式: 2025/09/04
日本語形式: 2025年09月04日

このプログラムではLocalDateで日付を作成し、DateTimeFormatterを使って異なる形式の文字列へ変換しています。Javaの日付フォーマット処理ではこのような書き方が基本となります。Webアプリケーションやシステム開発でも同じ仕組みが使われているため、初心者のうちに理解しておくと実務でも役立ちます。

実務で役立つLocalDateとformatの活用場面

JavaのLocalDateとformatメソッドは多くの開発現場で利用されています。例えばECサイトでは注文日や発送日を表示する際に日付フォーマットが必要になります。また業務システムでは登録日や更新日を管理するために日付表示が必要です。さらにログ出力ではシステムの動作履歴を確認するために日付を一定のフォーマットで記録することが重要になります。

これらの場面ではユーザーが読みやすい日付形式を選ぶことが大切です。日本向けのサービスでは年月日形式が好まれることが多く、海外向けのサービスでは英語形式やスラッシュ形式が使われることがあります。このような要件に柔軟に対応できるのがDateTimeFormatterの特徴です。

またJavaプログラミングでは日付フォーマットのパターンを正しく理解しておくことも重要です。例えば月を表すMMと分を表すmmは意味が異なるため、誤って指定すると想定外の結果になる可能性があります。こうした細かいルールを理解しておくことで、より正確な日付処理ができるようになります。

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

生徒

今日の内容でJavaの日付処理の仕組みがかなり理解できました。特にLocalDateというクラスが年月日だけを扱うためのクラスだということがよく分かりました。

先生

その理解はとても大切です。Javaではjava.timeパッケージを使うことで安全で分かりやすい日付処理を書くことができます。その中でもLocalDateは非常に使用頻度が高いクラスです。

生徒

そして日付を表示するときにはformatメソッドを使うんですよね。DateTimeFormatterでフォーマットを指定すると表示形式を自由に変えられるのが便利だと思いました。

先生

その通りです。Javaのformatメソッドは日付を文字列に変換する重要な機能です。アプリケーションの画面表示やログ出力など多くの場面で使われています。

生徒

月や日を表すパターンの指定にもルールがあることが分かりました。MMとmmの違いなどは間違えやすそうなので注意したいと思います。

先生

とても良い視点ですね。JavaのDateTimeFormatterではパターン文字列を正しく理解することが重要です。慣れてくるとさまざまな日付形式を簡単に作れるようになります。

生徒

これからJavaでWebアプリケーションを作るときにも日付表示は必ず必要になりそうですね。今日学んだLocalDateとformatメソッドをしっかり覚えておきます。

先生

ぜひ実際にコードを書きながら理解を深めてください。LocalDateとDateTimeFormatterを使いこなせるようになるとJavaの日付処理がとてもスムーズになります。

カテゴリの一覧へ
新着記事
New1
Spring
Javaの@RequestParamアノテーションの使い方を徹底解説!初心者でもわかるリクエストパラメータの基本と応用
更新記事
New2
JSP
JSPでフォームを表示して入力を受け取る基本手順をやさしく解説!初心者向けフォーム処理の入門ガイド
更新記事
New3
Thymeleaf
Thymeleafの#stringsユーティリティとは?初心者でも使える文字列操作ガイド
更新記事
New4
Java
JavaのArrayListクラスとisEmptyメソッドを完全解説!初心者でもわかるリストの空チェック
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.5
Java&Spring記事人気No5
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.6
Java&Spring記事人気No6
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.7
Java&Spring記事人気No7
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.8
Java&Spring記事人気No8
Spring
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス