Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

So sánh hai Date trong Java (compareTo)

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)