日期比较问题

时间:2013-05-24 07:51:39

标签: java date

我按照此代码比较日期

 if(new Date().after(new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").
     parse(rs.getString("FromDate")))){
     permMediaRs.setTimeFrame(true);
 }

但它没有给我准确的结果。所以我试着打印它们以检查日期是对还是错。所以当我打印它们时

    System.out.println("Today: " + new Date() + " From: "+new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse(rs.getString("FromDate"));

然后它给了我这个输出。

   TOday: Fri May 24 12:34:38 PKT 2013  From: Thu Nov 03 00:00:00 PKT 35

现在您可以看到today date正常,但From date我无法理解35是什么。我期待在这里待一年,但它只打印35个。有什么建议吗?

注意: rs.getString("FromDate"));值来自数据库,其值为2013-05-22 00:00:00.0

3 个答案:

答案 0 :(得分:2)

指定的格式为"dd-MM-yyyy HH:mm:ss",而在数据库中您说有2013-05-22 00:00:00.0。解析失败当然。它应该是"yyyy-MM-dd HH:mm:ss"

答案 1 :(得分:2)

您的SimpleDateFormat模式对字符串“2013-05-22 00:00:00.0”无效

试试这个 yyyy-MM-dd HH:mm:ss

答案 2 :(得分:1)

你的dateformat是错的。您正在使用dd-MM-yyyy HH:mm:ss,但在您的数据库中存储了2013-05-22 00:00:00.0

请尝试使用yyyy-MM-dd HH:mm:ss.S。顺便说一句:您应该在数据库中使用Date字段而不是String

请参阅SimpleDateFormat的Javadoc。