0

我从属性文件中得到一个硬编码的日期,它的格式是dd-MMM-yyyy.

现在我需要将它与相同格式的当前日期进行比较。为此,我编写了这段代码:

Date convDate = new Date();
Date currentFormattedDate = new Date();
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
convDate = new SimpleDateFormat("dd-MMM-yyyy").parse("20-Aug-2013");
currentFormattedDate = new Date(dateFormat.format(currentFormattedDate)); 
if(currentFormattedDate.after(convDate) || currentFormattedDate.equals(convDate)){
  System.out.println("Correct");
}else{
  System.out.println("In correct");
}

但是eclipse告诉我new Date已经贬值了。有谁知道这样做的任何替代方法?我要疯了。谢谢 !

4

3 回答 3

3

一种方法是使用Calendar类及其after()equals()before()方法。

Calendar currentDate = Calendar.getInstance();
Calendar anotherDate = Calendar.getInstance();
Date convDate = new SimpleDateFormat("dd-MMM-yyyy").parse("20-Aug-2013");
anotherDate.setTime(convDate);
if(currentDate .after(anotherDate) || 
   currentDate .equals(anotherDate)){
    System.out.println("Correct");
}else{
   System.out.println("In correct");
}

您还可以使用Jodatime 库,请参阅这个 SO 答案

于 2013-08-20T07:24:53.783 回答
1

您应该使用Date(long)构造函数:

Date convDate = new Date(System.currentTimeMillis());

这样,您将避免弃用警告,并会获得一个带有系统时间的 Date 实例。

于 2013-08-20T07:23:32.460 回答
1

Date表示自纪元以来的毫秒数。为什么不直接使用Date返回的 from

Date currentFormattedDate = new Date();

?

于 2013-08-20T07:23:32.763 回答