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

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の例外処理の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

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

UGREEN USB-Cハブを見る

※ Amazon広告リンク