122 views

getDateTimeInstance() 搞了我1个多小时

在JAVA项目里,由于要控制一个服务端功能的启动和关闭时间故要比较时间,这里我用了
Date now = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
用了now.before 和now.after 去比较比如now.before(df.parse(getValue))
getValue是从数据库取的String 类型的一个Datetime,第一次上线的时候一切正常,结果这几天尽是报unparse 错误,说某个时间不能转换,这个头大了,以为在linux上运行,后来用了linux 格式的时间,还是不行,结果在打印getDateTimeInstance()的时候发现问题了原来单个月份是不能加”0″的,但在数据库中存储的一直是类似于这样的时间”2010-06-22 23:56:34″,必须要这样”2010-6-22 23:56:34″,刚上线的时候,测试的时候因为一直是双月份,所以没有发生错误。这次错在了经验上,其实一般最好先格式化成所需要的时间格式,这里偷懒了。所以造成了这样很难发现的错误。

Leave a comment