カテゴリ: Javaの例外処理 更新日: 2025/11/28

Javaの特定の日付を指定してオブジェクトを作成する方法!初心者でもすぐに使えるLocalDateの基本

364
Java の特定の日付を指定してオブジェクトを作成する方法

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

生徒

「Javaで特定の日付を指定して使いたいんですけど、どうやって日付オブジェクトを作ればいいですか?」

先生

「JavaではLocalDateというクラスを使えば、年・月・日を指定して簡単に日付オブジェクトを作ることができますよ。」

生徒

「数字で指定するだけですか?それとも何か特別な書き方があるんですか?」

先生

ofメソッドを使えば、簡単に '年・月・日' を指定して日付を生成できます。それでは詳しく見ていきましょう。」

1. Javaで特定の日付を生成するには?LocalDateクラスの基本

1. Javaで特定の日付を生成するには?LocalDateクラスの基本
1. Javaで特定の日付を生成するには?LocalDateクラスの基本

Javaで特定の日付(たとえば「2025年12月25日」など)をプログラム内で扱いたい場合は、java.time.LocalDateクラスを使うのが一般的です。
LocalDateは、年・月・日のみを扱う日付クラスで、Java 8から導入されました。
時刻やタイムゾーンが不要なケースでは、LocalDateが最適です。

2. LocalDate.ofメソッドで日付オブジェクトを作成する

2. LocalDate.ofメソッドで日付オブジェクトを作成する
2. LocalDate.ofメソッドで日付オブジェクトを作成する

最もシンプルな方法は、LocalDate.of(int year, int month, int dayOfMonth)メソッドを使う方法です。
年・月・日を整数で渡すだけで、簡単に日付を表すインスタンスを生成できます。


import java.time.LocalDate;

public class CreateDateExample {
    public static void main(String[] args) {
        LocalDate birthday = LocalDate.of(1990, 7, 15);
        System.out.println("誕生日: " + birthday);
    }
}

誕生日: 1990-07-15

3. LocalDate.parseで文字列から日付を生成する

3. LocalDate.parseで文字列から日付を生成する
3. LocalDate.parseで文字列から日付を生成する

文字列から日付を生成する場合は、LocalDate.parseメソッドを使います。
文字列の形式は"yyyy-MM-dd"形式が基本です。
例えば、外部から受け取った日付文字列をLocalDateに変換したい場合に便利です。


import java.time.LocalDate;

public class ParseDateExample {
    public static void main(String[] args) {
        String input = "2023-11-03";
        LocalDate date = LocalDate.parse(input);
        System.out.println("指定日: " + date);
    }
}

指定日: 2023-11-03

4. DateTimeFormatterで独自のフォーマットを扱う方法

4. DateTimeFormatterで独自のフォーマットを扱う方法
4. DateTimeFormatterで独自のフォーマットを扱う方法

文字列が"yyyy/MM/dd""dd-MM-yyyy"のような形式の場合は、DateTimeFormatterを使って変換する必要があります。
書式に合わせたフォーマッタを定義し、それをLocalDate.parseに渡します。


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

public class CustomFormatExample {
    public static void main(String[] args) {
        String input = "2025/09/03";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        LocalDate date = LocalDate.parse(input, formatter);
        System.out.println("フォーマット指定日: " + date);
    }
}

フォーマット指定日: 2025-09-03

5. 月や日が1桁のときの注意点

5. 月や日が1桁のときの注意点
5. 月や日が1桁のときの注意点

月や日が1桁(例:2025年1月5日)の場合も、LocalDate.ofであればそのまま数値で渡せます。
しかし、文字列で扱う場合は、ゼロパディングされた形式(例:"2025-01-05")でなければ例外が発生することがあります。

そのため、文字列から日付を生成する場合は、事前に文字列の形式が正しいか確認するのが大切です。

6. 日付生成で発生するエラー例と対処法

6. 日付生成で発生するエラー例と対処法
6. 日付生成で発生するエラー例と対処法

LocalDate.ofで存在しない日付(例:2月30日)を指定すると、DateTimeExceptionが発生します。
また、parseメソッドでも、日付のフォーマットが不正だとDateTimeParseExceptionが出ます。

これらのエラーに備えて、日付の妥当性チェックや、例外処理を加えることをおすすめします。


import java.time.LocalDate;
import java.time.format.DateTimeParseException;

public class SafeParseExample {
    public static void main(String[] args) {
        String input = "2025-02-30";

        try {
            LocalDate date = LocalDate.parse(input);
            System.out.println("日付: " + date);
        } catch (DateTimeParseException e) {
            System.out.println("不正な日付形式です: " + e.getMessage());
        }
    }
}

不正な日付形式です: Text '2025-02-30' could not be parsed: Invalid date 'FEBRUARY 30'

7. Javaで日付を指定して使う実用例

7. Javaで日付を指定して使う実用例
7. Javaで日付を指定して使う実用例

Javaで日付オブジェクトを生成して使う場面は多くあります。たとえば以下のようなケースです:

  • 予約日や締切日をコード上に明記して処理を行う
  • 入力フォームから送られた日付文字列をJavaで扱う
  • データベースに保存する日付の整形や比較処理

JavaではLocalDateofparseを使えば、柔軟に日付生成ができるので、初心者でも安心して利用できます。

Javaの例外処理の一覧へ
新着記事
FlutterのInheritedWidgetとは?仕組みと活用方法
FlutterのInheritedWidgetとは?仕組みと活用方法を初心者向けにやさしく解説
Blocパターンの仕組みと導入方法をわかりやすく解説
FlutterのBlocパターンを完全ガイド!初心者でもわかる状態管理と導入方法
Flutterのプロジェクト作成コマンドとディレクトリ構成を学ぼう
Flutterのプロジェクト作成コマンドとディレクトリ構成を学ぼう
Flutterのウィジェットとは?初心者向けに仕組みと使い方を解説
Flutterのウィジェットとは?初心者向けに仕組みと使い方を解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
Java のインターフェースとは?普通のクラスとの違いを学ぼう
Javaのインターフェースとは?普通のクラスとの違いを学ぼう【初心者向け解説】
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説