【发布时间】:2015-02-13 17:27:09
【问题描述】:
我正在读取文件 (.csv) 中的信息,该文件将在最终用户验证和批准后插入数据库。读取、验证文本文件并将其信息加载到包含用于检查数据是否已存在于数据库中的表单的列表中。
将字符串解析为日期时会出现问题。即使 SimpleDateFormat 的模式为“yyyy-MM-dd”,SimpleDateFormat.parse() 方法也会返回意外的日期格式。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
将加载的值解析到旅行对象:
travel.setDate( dateFormat.parse( form.getTravelDate() ));
在调试器中,表单将日期显示为:
"2012-12-12"
按预期阅读。但是解析后变成:
Wed Dec 12 00:00:00 CST 2012
我已经花了一整天的时间试图解决这个问题,但我现在没有想法。 Afaik 模式没问题,我尝试添加语言环境无济于事。
编辑:问题是当我需要使用 Hibernate 将值插入数据库时。不需要的格式也会最终显示在数据库中。
数据显示在 .jsp 页面中使用
HttpServletRequest("table",travelList);
我不需要的日期格式显示在这里,而在过去这个问题从未发生过。最后,信息被发送到问题仍然存在的数据库。
【问题讨论】:
-
解析(字符串到日期)与格式化(日期到字符串)没有任何关系。