2013-08-20 107 views
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現在已經貶值。有沒有人知道這樣做的其他方式?我爲此瘋狂。謝謝 !

回答

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

+0

非常感謝。這真的很好。爲解釋和+1接受。 –

1

您應該使用Date(long)構造:

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

這樣你會避免棄用警告,並會得到一個Date實例與系統時間。

1

Date表示自紀元以來的毫秒數。爲什麼不僅僅使用從

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

相關問題