2014-06-25 99 views
2

我想刪除數據庫中有Date(java.util.Date)大於當前日期的10天以內的條目。有什麼辦法可以比較日期內的「日」值嗎?不僅要比較哪個日期值更大,而且要確保兩個日期值之間有X天。Java - 如何檢查兩個日期值是否相隔X天

+0

你正在使用什麼樣的數據庫? – Bharath

+1

日期是舊的消息。我會使用Calendar API或java中的新日期時間api 8 – Cruncher

+0

不使用Joda時間庫在這裏 – mirage1s7

回答

6

假設你有兩個Date值,分別爲time1time2

int daysApart = (int)((time2.getTime() - time1.getTime())/(1000*60*60*24l)); 
if (abs(daysApart) >= 10) 
    System.out.println("10+ days apart."); 
else 
    System.out.println("Less than 10 days apart."); 
+0

我會假設,如果time1是在晚上9點,而時間2是10天后在上午9點,它仍然想匹配 – Cruncher

+0

這就是爲什麼有一個'> =',而不僅僅是一個'>' – krodmannix

+0

所以?你的整數除法將使9天,而不是10天。因爲time2比time1少10天。 – Cruncher

0

只需爲當前日期+10天創建一個新的Date對象並與其進行比較。

new Date(System.currentTimeMillis()+10L*24*60*60*1000); 

正如評論說,雖然Date對象是非常過時了,現在,你應該看看使用的更多的當前時間的方法之一。

相關問題