Có nhiều phương pháp để so sánh ngày trong Java. Ngày biểu diễn một khoảnh khắc cụ thể và được biểu diễn dưới dạng số giây tính từ 1/1/1970. Trong Java, lớp Date cung cấp nhiều phương thức để so sánh. Mọi phương thức so sánh đều so sánh thời gian của ngày đó.
Thực hiện phép so sánh bằng phương thức compareTo
Sử dụng phương thức compareTo. Lớp Date cho phép so sánh trực tiếp thông qua phương thức compareTo. Khi hai ngày bằng nhau, kết quả trả về là 0. Khi ngày đầu tiên trước ngày thứ hai, kết quả là số âm. Ngược lại, kết quả sẽ là số dương.

So sánh bằng phương thức compareTo

Khởi tạo đối tượng ngày. Trước khi so sánh, bạn cần tạo các đối tượng ngày. Một cách để làm điều này là sử dụng lớp SimpleDateFormat. Lớp này cho phép chuyển đổi ngày từ chuỗi vào đối tượng date một cách dễ dàng.

So sánh các đối tượng ngày. Dưới đây là ví dụ về các trường hợp: nhỏ hơn, bằng và lớn hơn.
So sánh bằng phương thức equals, after và before

Sử dụng phương thức equals, after và before.
Có thể so sánh ngày bằng equals, after và before. Nếu hai ngày cùng thời điểm, equals trả về true.

So sánh bằng phương thức before. Có hai trường hợp: true và false. Nếu date1 trước date2, before trả về true, ngược lại là false.

So sánh bằng phương thức after. Có hai trường hợp: true và false. Nếu date2 sau date1, after trả về true, ngược lại trả về false.

So sánh bằng phương thức equals. Có hai trường hợp: true và false. Nếu hai ngày cùng thời điểm, equals trả về true, ngược lại trả về false.
Bằng lớp calendar

Sử dụng lịch (calendar). Lớp calendar cũng có các phương thức compareTo, equals, after và before, tương tự như lớp date đã mô tả trước đó.

Tạo trường hợp trong Calendar. Để sử dụng các phương thức trong lịch, bạn cần tạo một số trường hợp Calendar từ các đối tượng Date đã có.

So sánh cal1 và cal2 bằng phương thức before. Mã dưới đây sẽ trả về true vì cal1 trước cal2.

So sánh cal1 và cal2 bằng phương thức after. Mã dưới đây sẽ trả về false vì cal1 trước cal2.

So sánh cal1 và cal2 bằng phương thức equals. Mã dưới đây minh họa cả hai trường hợp true và false.
Bằng phương thức getTime

Sử dụng phương thức getTime. Phương thức này cũng có thể so sánh trực tiếp thời điểm của hai ngày.

Tạo số nguyên dài kiểu long từ đối tượng Date. Phương thức getTime() sẽ giúp bạn biến đổi đối tượng Date thành số nguyên dài.

So sánh bé hơn sử dụng dấu <. Kết quả sẽ hiển thị 'date1 is before date2' vì time1 < time2.

So sánh lớn hơn sử dụng dấu >. Kết quả sẽ hiển thị 'date2 is after date1' vì time2 > time1.

So sánh bằng sử dụng dấu ==. Kết quả sẽ hiển thị 'the dates are not equal' vì time1 != time2.