数据库日期和当前日期的比较
问题描述:
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)){
}
答
您不应该比较日期的字符串表示形式,而是使用实际的对象。 如果date2
是java.sql.Date
或java.util.Date
您可以使用new Date().equals(date2)
按原样比较它们。
请注意,日期是以毫秒级的精度存储的,因此您可能希望在比较之前删除不想要的字段,或者使用Apache Commons的DateUtils
(例如, DateUtils.isSameDay(date2, new Date());
答
我非常赞同托马斯的方法;将日期从字符串表示转换为日期特定类型,如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。
什么是date2?它是字符串还是日期?你如何初始化或检索它? – melihcelik
您是否将'字符串保存到数据库或其日期“中... – BBdev
而不是基于字符串的比较,为什么不使用[Calendar.compareTo(Calendar)](http://docs.oracle.com/javase /1.5.0/docs/api/java/util/Calendar.html#compareTo(java.util.Calendar))。 – Mudassir