数据库日期和当前日期的比较

时间:2011-11-29 11:29:20

标签: java

DB Date是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)){

}

2 个答案:

答案 0 :(得分:1)

您不应该比较日期的字符串表示形式,而是使用实际对象。 如果date2java.sql.Datejava.util.Date,您可以使用new Date().equals(date2)按原样进行比较。

请注意,日期以毫秒精度存储,因此您可能希望在比较之前删除不需要的字段,或者使用Apache Commons“DateUtils,例如DateUtils.isSameDay(date2, new Date());

答案 1 :(得分: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