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