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メソッドを利用します。この方法は内部で日付を数値化し比較するため、直感的かつ高速です。