2012-09-27 137 views
0

我想比較兩個日期。我的第一次約會是:比較當前日期和以前的日期

Date previousDate ="Returns a date as 2011-12-09 in a gregorian date" 

和第二個日期是我的「當前日期」,在這裏我得到我的當前日期爲:

SimpleDateFormat format = new SimpleDateFormat("yyyy/mm/dd"); 
Date date=new Date(); 

當我嘗試將當前日期比較我以前的日期,我只能比較一年(或只是模式中的第一件事)。

System.out.println("date"+previousDate.compareto(format(date)); 

我能夠得到出「1」,因爲它只是比較年份而不是整個日期。 你們中的任何人都能弄清楚我缺少什麼。我嘗試了很多方法,但無法成功。請讓我知道,如果我能解決這個問題,或者我需要一個不同的解決方案。

謝謝。

+0

目前還不清楚你真正想做什麼。如果你想比較兩個日期,你爲什麼要比較previousDate「今年」? –

回答

1

通過

SimpleDateFormat(yyyy/mm/dd); 

我猜你的意思是

SimpleDateFormat("yyyy/MM/dd"); 

但重要的一點是,按照慣例,通常compareTo返回-1,0或1。

這裏的日期實施#compareTo:

974  public int compareTo(Date anotherDate) { 
975   long thisTime = getMillisOf(this); 
976   long anotherTime = getMillisOf(anotherDate); 
977   return (thisTime<anotherTime ? -1 : (thisTime==anotherTime ? 0 : 1)); 
978  } 
+0

確切的合約是:負詮釋,0或正詮釋。你不能依靠值是-1,0和1 –

+0

是啊,這是我所使用的SimpleDateFormat(「YYYY/MM/DD」);那麼,有沒有其他的任何其他方式可以比較的,因爲情況是比較看看這些日子不會超過30天。 – user1046671

+0

@SeanPatrickFloyd是的,但它通常重新歸一化爲-1,0,1,這就是Date的情況。 –

相關問題