2013-08-16 66 views
-2

我使用RichFaces日曆組件工作。我使用Rich Faces 3並擁有兩個日曆組件。如何在Java中比較兩個不同的Date值?

如何以這種方式比較兩個日期值,這兩個值可以高於另一個?

兩個值將在該方式初始化:

Date startDate = new Date(); 

Date endDate = new Date(); 

現在,我的用戶可以選擇在DateValues豐富面臨日曆UND選定值將被保存在變量。

如何比較這兩個值?

格爾茨

+4

我下投票。在發佈此問題之前,您已經顯示過零研究的跡象。 –

+0

[Java中比較日期]的可能重複(http://stackoverflow.com/questions/2592501/compare-dates-in-java) –

回答

3

您可以使用afterbefore方法

​​

由於Date工具Comperable<Date>,方法compareTo也能正常工作。

2

可以使用的DatecompareTo方法做對比

compareTo(Date anotherDate)方法返回

值0如果參數日期等於這個日期;如果此Date在Date參數之前,則值小於 ;如果此日期在Date參數之後,則值大於0的值爲 。

1

要在兩個日期比較,你應該使用的compareTo()方法:

if(startDate.compareTo(endDate) > 0) 

這種方法

  1. 返回0,如果日期是等於
  2. 回報positve值如果日期在日期參數之後
  3. 返回負值e如果日期是日期參數之前
2

的compareTo(日期日期)是日期類,進行比較的方法的兩個日期 此方法:

  • 返回值是0,如果兩個日期相等。

  • 如果Date在日期參數之後,則返回值大於0。

  • 如果Date在日期參數之前,則返回值小於0。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date1 = sdf.parse("2012-10-31"); 
    Date date2 = sdf.parse("2013-01-21"); 
    
    
    if(date1.compareTo(date2)>0){ 
           System.out.println("Date1 is after Date2"); 
          }else if(date1.compareTo(date2)<0){ 
           System.out.println("Date1 is before Date2"); 
          }else if(date1.compareTo(date2)==0){ 
           System.out.println("Date1 is same as Date2"); 
          }else{ 
           System.out.println("never gets executed"); 
          }