[英]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.