カテゴリ: Javaの例外処理 更新日: 2026/05/07

Javaの日付を比較する方法を解説!初心者でもわかるisBefore・isAfter・isEqualの使い方

363
Java の日付を比較する方法(isBefore, isAfter, isEqual)

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

生徒

「Javaで日付を比較する方法ってありますか?たとえば、ある日付が今日より前かどうかを調べたいんです。」

先生

「いい質問ですね。Javaでは、LocalDateクラスを使えば、簡単に日付の比較ができますよ。」

生徒

「どんなメソッドを使えばいいんですか?」

先生

isBeforeisAfterisEqualという便利なメソッドがあります。それぞれ、指定した日付より前・後・同じかを判定できるんですよ。」

生徒

「なるほど!それなら直感的に使えそうですね。」

先生

「では、具体的な使い方を見ていきましょう。」

1. Javaで日付を比較する基本:LocalDateクラスとは?

1. Javaで日付を比較する基本:LocalDateクラスとは?
1. Javaで日付を比較する基本:LocalDateクラスとは?

Javaで日付を扱う場合、java.timeパッケージに含まれるLocalDateクラスがよく使われます。
このLocalDateは、年・月・日を扱う日付クラスで、時刻は含まれません。
日付を比較するには、このLocalDateに用意されているisBeforeisAfterisEqualを使います。

2. isBeforeで日付が前かどうかを判定する

2. isBeforeで日付が前かどうかを判定する
2. isBeforeで日付が前かどうかを判定する

isBeforeメソッドは、指定した日付より前かどうかを判定します。
たとえば、「ある締切日が今日より前かどうか」を調べたいときに使えます。


import java.time.LocalDate;

public class DateCompareExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate deadline = LocalDate.of(2024, 12, 1);

        if (deadline.isBefore(today)) {
            System.out.println("締切日はすでに過ぎています。");
        } else {
            System.out.println("締切日はまだ先です。");
        }
    }
}

締切日はまだ先です。

3. isAfterで日付が後かどうかを確認する

3. isAfterで日付が後かどうかを確認する
3. isAfterで日付が後かどうかを確認する

isAfterメソッドは、指定した日付より後かを判定します。
たとえば、「イベントの日付が今日より後かどうか」を判断するのに便利です。


import java.time.LocalDate;

public class AfterCheckExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate eventDate = LocalDate.of(2025, 1, 10);

        if (eventDate.isAfter(today)) {
            System.out.println("イベントはまだ開催されていません。");
        } else {
            System.out.println("イベントはすでに終わっています。");
        }
    }
}

イベントはまだ開催されていません。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. isEqualで日付が一致しているかをチェックする

4. isEqualで日付が一致しているかをチェックする
4. isEqualで日付が一致しているかをチェックする

isEqualメソッドは、2つの日付が同じかどうかを判定します。
誕生日や記念日など、ピッタリ一致しているかを確かめたいときに使えます。


import java.time.LocalDate;

public class EqualDateExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate birthday = LocalDate.of(2025, 9, 3);

        if (birthday.isEqual(today)) {
            System.out.println("今日は誕生日です!");
        } else {
            System.out.println("今日は誕生日ではありません。");
        }
    }
}

今日は誕生日です!

5. LocalDateを比較する際の注意点

5. LocalDateを比較する際の注意点
5. LocalDateを比較する際の注意点

Javaの日付比較では、LocalDate同士で比較することが重要です。
たとえば、LocalDateTimeZonedDateTimeなど、時刻を含むクラスと比較すると意図しない結果になることがあります。

また、文字列や他の形式の日付と比較するには、一度LocalDateに変換する必要があります。例えば、日付を文字列から変換するには以下のようにします。


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

public class StringToDateExample {
    public static void main(String[] args) {
        String input = "2025-09-03";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate parsedDate = LocalDate.parse(input, formatter);

        System.out.println("変換後の日付: " + parsedDate);
    }
}

6. よくあるエラーとその対策

6. よくあるエラーとその対策
6. よくあるエラーとその対策

Javaで日付比較をする際によくあるエラーは、「NullPointerException」です。
LocalDateの変数がnullのままisBeforeなどを使おうとすると例外が発生します。

必ず、nullチェックやOptionalの活用を意識して、安全に比較処理を行いましょう。

7. Javaの日付比較でよく使うユースケース

7. Javaの日付比較でよく使うユースケース
7. Javaの日付比較でよく使うユースケース

Javaの日付比較(isBeforeisAfterisEqual)は、以下のような実用的な場面でよく使われます:

  • 予約日が現在日付より前かどうかのチェック
  • イベントの開催日が未来かどうかを判定
  • 登録日の重複を避けるために同一日付かを判定
  • 有効期限チェック(期限切れかどうか)

このように、Javaで日付を正確に比較する方法を知っておくと、様々なシステム開発で役立ちます。

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

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

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

Javaで日付を比較する際、具体的にどのクラスを使用するのが最も一般的で推奨されますか?

Javaで日付を比較する場合、現在主流となっているのはjava.timeパッケージに含まれているLocalDateクラスです。このLocalDateクラスは、Java 8から導入された新しい日付APIの一部であり、以前のDateクラスやCalendarクラスに比べて非常に扱いやすく、直感的な操作が可能です。具体的には、年・月・日の情報のみを保持し、時刻の情報を持たないため、純粋な日付の前後関係や一致を確認するシステム開発の現場で広く採用されています。isBefore、isAfter、isEqualといった比較専用のメソッドが用意されているため、初心者の方でもコードの可読性を高く保ちながら実装できるのが大きなメリットです。
Javaの例外処理の一覧へ
新着記事
Flutter
Flutterでのリポジトリパターンの実装例
Flutterでリポジトリパターンを実装する方法を完全解説!初心者向けアーキテクチャ設計入門
Java
Java の Objects クラスを使って null チェックを簡単にする方法
JavaのObjectsクラスの使い方を完全ガイド!nullチェックを簡単・安全に行う方法
Java
Java の UUID クラスを使って一意の識別子を作成する方法
JavaのUUIDクラスの使い方を完全ガイド!初心者でもわかる一意な識別子の作成方法
Java
Java の古い日付クラス(Date, Calendar)と新しい日付 API の違い
JavaのDateとCalendarと新しい日付APIの違いとは?初心者向け完全ガイド
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク