2011-11-29 108 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

相关问题