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

Cách so sánh hai ngày kèm giờ trong Java

Lớp java.time.LocalDateTime biểu diễn ngày và giờ cục bộ (không có múi giờ). Lớp này cung cấp isBefore(), isAfter() và isEqual() để so sánh.

Ví dụ 1: Sử dụng LocalDateTime (Java 8+ - Khuyến nghị)

import java.time.LocalDateTime;

public class Test {
    public static void main(String args[]) {
        LocalDateTime dateTime1 = LocalDateTime.of(2007, 11, 25, 10, 15, 45);
        LocalDateTime dateTime2 = LocalDateTime.of(1999, 9, 12, 07, 25, 55);

        Boolean bool1 = dateTime1.isAfter(dateTime2);
        Boolean bool2 = dateTime1.isBefore(dateTime2);
        Boolean bool3 = dateTime1.isEqual(dateTime2);

        if (bool1) {
            System.out.println(dateTime1 + " là sau " + dateTime2);
        } else if (bool2) {
            System.out.println(dateTime1 + " là trước " + dateTime2);
        } else if (bool3) {
            System.out.println(dateTime1 + " bằng " + dateTime2);
        }
    }
}

Kết quả

2007-11-25T10:15:45 là sau 1999-09-12T07:25:55

Ví dụ 2: Sử dụng SimpleDateFormat và Date (Legacy)

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CreateDateTime {
    public static void main(String args[]) throws ParseException {
        String dateTimeStr1 = "26-09-1989 8:27:45";
        String dateTimeStr2 = "12-11-2010 2:30:12";

        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        Date dateTime1 = formatter.parse(dateTimeStr1);
        Date dateTime2 = formatter.parse(dateTimeStr2);

        Boolean bool1 = dateTime1.after(dateTime2);
        Boolean bool2 = dateTime1.before(dateTime2);
        Boolean bool3 = dateTime1.equals(dateTime2);

        if (bool1) {
            System.out.println(dateTimeStr1 + " là sau " + dateTimeStr2);
        } else if (bool2) {
            System.out.println(dateTimeStr1 + " là trước " + dateTimeStr2);
        } else if (bool3) {
            System.out.println(dateTimeStr1 + " bằng " + dateTimeStr2);
        }
    }
}

Kết quả

26-09-1989 8:27:45 là trước 12-11-2010 2:30:12