2011-11-29 126 views
0

DB日期是11-18-2011 03:40:56而當前日期格式相同。 如何比較?我已經實施了以下內容,但沒有給出正確的結果。 以下是我的代碼。數據庫日期和當前日期的比較

Calendar calendar = Calendar.getInstance(); 
Calendar currentDate = Calendar.getInstance(); 
SimpleDateFormat formatter= new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
String dateNow = formatter.format(currentDate.getTime()); 

if(datenow.toString.equals(date2)){ 

} 
+0

什麼是date2?它是字符串還是日期?你如何初始化或檢索它? – melihcelik

+0

您是否將'字符串保存到數據庫或其日期「中... – BBdev

+0

而不是基於字符串的比較,爲什麼不使用[Calendar.compareTo(Calendar)](http://docs.oracle.com/javase /1.5.0/docs/api/java/util/Calendar.html#compareTo(java.util.Calendar))。 – Mudassir

回答

1

您不應該比較日期的字符串表示形式,而是使用實際的對象。 如果date2java.sql.Datejava.util.Date您可以使用new Date().equals(date2)按原樣比較它們。

請注意,日期是以毫秒級的精度存儲的,因此您可能希望在比較之前刪除不想要的字段,或者使用Apache Commons的DateUtils(例如, DateUtils.isSameDay(date2, new Date());

0

我非常贊同托馬斯的方法;將日期從字符串表示轉換爲日期特定類型,如java.util.Date,然後您可以使用它來進行所需的任何比較。想我可能會用更具體的例子闡述了清晰:

DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 

// convert to a Date 
String dateString = "11-18-2011 03:40:56"; 
Date date = formatter.parse(dateString); 

// comparisons as required 
int comparison = date.compareTo(new Date()); 
boolean isNow = date.equals(new Date()); 

如果你的程序依賴於做這樣的轉換和比較的時候,我建議考慮看看Joda-Time

相關問題