因此,我使用的是dateString1.compareTo(dateString2)
,它基於每個字符的Unicode值對字符串進行字典式比較,並返回一個int值。這是一個代碼示例。在Java中比較日期字符串
String dateString1 = "05-12-2012";
String dateString2 = "05-13-2012";
if (dateString1.compareTo(dateString2) <=0){
System.out.println("dateString1 is an earlier date than dateString2");
}
這是一個錯誤的方法來比較Java中的日期?
在我的測試中,我沒有遇到過我得到意想不到的結果的情況。如果我不需要,我真的不想在字符串中創建一個Date對象,因爲我在長時間運行的循環中執行此操作。
忍者編輯 從答案拾荒下面有什麼不對比較日期爲一個字符串,如果它是在yyyyMMdd
格式,但如果是在任何其他格式會明顯導致錯誤。
我實際上在我的實際代碼中實際上有我的日期字符串爲yyyyMMdd
格式。 (我在上面給出的示例中輸入了錯誤的格式。)因此,現在我只是保留原來的代碼,並添加幾行註釋來證明我的決定。
但我現在看到,比較這樣的字符串是非常有限的,如果dba決定將日期格式更改爲道路,我將不會看到發生的情況。
看看這個問題由我問前段時間http://stackoverflow.com/questions/2592501/compare-dates-in-java – ant