網頁

2017/8/16

Java 比較日期Date

在Java中若要比較兩個日期先後,但不考慮時間部分如時,分,秒,毫秒,可使用Apache Commons LangDateUtils.isSameDay()方法...

DateUtils.isSameDay(date1, date2);

若使用java.util.DatecompareTo()來比較兩日期,則日期相同但時間上有差異的話,回傳的結果依舊表示為不同。

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


參考:

沒有留言:

張貼留言