日付を比較する

Java:
日付を比較する

How to: (やり方)

import java.time.LocalDate;

public class DateComparison {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2023, 4, 1);
        LocalDate date2 = LocalDate.now();

        if (date1.isAfter(date2)) {
            System.out.println("date1 は date2 より後の日付です。");
        } else if (date1.isBefore(date2)) {
            System.out.println("date1 は date2 より前の日付です。");
        } else {
            System.out.println("date1 と date2 は同じ日付です。");
        }
    }
}

サンプル出力:

date1 は date2 より前の日付です。

Deep Dive (掘り下げ)

日付の比較はJavaの初期バージョンから可能でしたが、Java 8で導入されたLocalDateクラスによってさらに簡単になりました。LocalDateは時刻情報を含まず、日付だけを扱うイミュータブルなクラスです。

他の代替手段としては、CalendarクラスやDateクラスを使う方法がありますが、これらは使うのが面倒でエラーが発生しやすいため、現在はあまり推奨されていません。

実装の詳細としては、LocalDateはChronoLocalDateインターフェースを実装しており、比較にはComparableインターフェースのcompareToメソッドを利用します。この方法は内部で日付を数値化し比較するため、直感的かつ高速です。

See Also (参照)