我按照此代码比较日期
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
答案 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。