6

我想比较两个日期并检查日期是否已过期。

这是我使用的代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:ss:ii");
Date date1 = sdf.parse("20012-10-4 10:15:25");
Date date2 = sdf.parse("2013-10-4 10:15:25");

if(date1.equals(date12)){
    System.out.println("Both are equals");
}

我想检查这两个日期但没有成功。

我也试过这样检查:

if(date1 >= date2){
    System.out.println("Both are not equals");
}

但它也不起作用。

4

6 回答 6

50

java.util.Date 类具有比较日期的 before 和 after 方法。

Date date1 = new Date();
Date date2 = new Date();

if(date1.before(date2)){
    //Do Something
}

if(date1.after(date2)){
    //Do Something else
}
于 2013-04-10T12:17:18.680 回答
5

尝试使用此功能。它将帮助您:-

public class Main {   
public static void main(String args[]) 
 {        
  Date today=new Date();                     
  Date myDate=new Date(today.getYear(),today.getMonth()-1,today.getDay());
  System.out.println("My Date is"+myDate);    
  System.out.println("Today Date is"+today);
  if(today.compareTo(myDate)<0)
     System.out.println("Today Date is Lesser than my Date");
  else if(today.compareTo(myDate)>0)
     System.out.println("Today Date is Greater than my date"); 
  else
     System.out.println("Both Dates are equal");      
  }
}
于 2013-04-10T12:25:28.240 回答
3

阅读JavaDocs

使用方法:

 Date.compareTo()
于 2013-04-10T12:15:57.490 回答
2

您应该查看 Date 类的 compareTo 函数。

JavaDoc

于 2013-04-10T12:17:23.533 回答
1

您可以使用:

date1.before(date2);

或者:

date1.after(date2);
于 2013-04-10T12:16:49.347 回答
1

equals(Object o)比较是正确的。

但是,您应该使用after(Date d)before(Date d)进行日期比较。

于 2013-04-10T12:17:16.900 回答