将当前日期与属性文件中的日期进行比较

时间:2013-08-20 07:19:35

标签: java date

我从属性文件中获取了一个硬编码日期,其格式为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已被折旧。有没有人知道这样做的其他方法?我为此疯狂。谢谢!

3 个答案:

答案 0 :(得分: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 library,请参阅this SO answer

答案 1 :(得分:1)

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

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

这样您就可以避免弃用警告,并获得具有系统时间的Date实例。

答案 2 :(得分:1)

Date表示自纪元以来的毫秒数。为什么不使用从

返回的Date
Date currentFormattedDate = new Date();