1

我正在通过此代码比较日期

 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

4

3 回答 3

2

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

于 2013-05-24T07:55:12.273 回答
2

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

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

于 2013-05-24T07:57:53.007 回答
1

你的日期格式是错误的。您正在使用dd-MM-yyyy HH:mm:ss2013-05-22 00:00:00.0存储在您的数据库中。

试试yyyy-MM-dd HH:mm:ss.S吧。顺便说一句:你应该更好地使用Date数据库中的字段而不是String.

请参阅SimpleDateFormat的 Javadoc 。

于 2013-05-24T07:55:09.823 回答