java.util.Date implements Comparable<Date>
Phương thức compareTo(Date other) trả về:
0– hai date bằng nhau> 0– date này sau other< 0– date này trước other
Ví dụ
import java.text.*;
import java.util.Date;
public class CompareDatesDemo {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2019-04-15");
Date d2 = sdf.parse("2019-08-10");
System.out.println("Date 1: " + sdf.format(d1));
System.out.println("Date 2: " + sdf.format(d2));
int cmp = d1.compareTo(d2);
if (cmp > 0) {
System.out.println("Date 1 xảy ra SAU Date 2");
} else if (cmp < 0) {
System.out.println("Date 1 xảy ra TRƯỚC Date 2");
} else {
System.out.println("Hai date BẰNG NHAU");
}
}
}
Kết quả
Date 1: 2019-04-15
Date 2: 2019-08-10
Date 1 xảy ra TRƯỚC Date 2
Hiện đại (Java 8+): Nên dùng java.time.LocalDate, LocalDateTime, Instant – immutable, thread-safe, API rõ ràng hơn.
LocalDate ld1 = LocalDate.of(2019, 4, 15);
LocalDate ld2 = LocalDate.of(2019, 8, 10);
System.out.println(ld1.compareTo(ld2) < 0); // true
System.out.println(ld1.isBefore(ld2)); // true (readable)