在Java中若要比較兩個日期先後,但不考慮時間部分如時,分,秒,毫秒,可使用Apache Commons Lang的DateUtils.isSameDay()
方法...
DateUtils.isSameDay(date1, date2);
若使用java.util.Date
的compareTo()來比較兩日期,則日期相同但時間上有差異的話,回傳的結果依舊表示為不同。
import java.util.Calendar;
import java.util.Date;
public class Main{
public static void main(String[] args) {
Date d1 = new Date(); // 取得目前日期時間
Calendar c2 = Calendar.getInstance();
c2.set(2016, 5, 13, 0, 0, 0); // 設定特定日期時間
Date d2 = c2.getTime();
System.out.println("d1 : " + d1.toString());
System.out.println("d2 : " + d2.toString());
if (d1.compareTo(d2) == 0) {
System.out.println("d1 等於 d2");
} else {
System.out.println("d1 不等於 d2");
}
}
}
執行結果
d1 : Tue Dec 10 00:33:41 CST 2019
d2 : Mon Jun 13 00:00:00 CST 2016
d1 不等於 d2
不過Date本身設計上有缺陷,所以建議改用Java 8的LocalDate
參考:
沒有留言:
張貼留言