簡體   English   中英

比較Java中兩個日期(日期標准)的最佳方法?

[英]Best way to compare two dates in Java (day criteria)?

我想知道比較Java中兩個Date的最佳方法,例如在以下情況下:

Date date = new Date(time);
Date now = new Date();
//
long day = 86400000L;
long days = day * 7;
if ((date.getTime() + days) <= now.getTime()) {
     // DO 1
} else {
     // DO 2
}

換句話說:我想獲得一個Date對象,幾天后添加並進行比較。

問題: Java 6是否有好的解決方案? 對於Java 8(使用新的Time API)? 我想為此使用Date.after(Date date)和Date.before(Date date)(在將日期添加到Date之后)

謝謝!

編輯

根據Coffee的說法,看起來這可以做到。 我不知道是否有更好的方法。

Calendar date = Calendar.getInstance();
date.setTime(new Date(time));
date.add(Calendar.DATE, 7);
Calendar now = Calendar.getInstance();
//
if(now.after(date)) {
     // DO 1
} else {
     // DO 2
}

您可以使用Joda-Time ,讓您的生活更加輕松:

DateTime dt = new  DateTime(time);
if (dt.plusDays(7).isBeforeNow()) {
 // DO 1
} else {
 // DO 2
}

在Java 8中:

LocalDate date = LocalDate.ofEpochDay(time); // days!
if (date.plusDays(7).isBefore(LocalDate.now())) {
    // DO 1
} else {
    // DO 2
}

編輯

如果時間以毫秒為單位:

Date d = new Date();
d.setTime(time);
LocalDate date = d.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

解釋在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM