カテゴリ: Java 更新日: 2025/09/17

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パッケージとは?

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メソッドの基本的な使い方

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の活用

フォーマットを多言語対応させたい場合は、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は時差を扱わない
カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本