【发布时间】:2011-12-06 14:51:58
【问题描述】:
我在 MySQL 之上使用 Spring Roo。我通过 Roo 生成的 JSON 方法提取日期,在浏览器表单中更改该数据,然后通过 Roo 生成的 JSON 方法将其保存回来。
我得到的日期格式是yyyy-MM-dd,标准的 MySQL 日期格式。我在浏览器上使用日历小部件来确保我提交的日期格式相同。
不幸的是,我的数据没有通过...FromJson() 方法,失败并出现错误:
Parsing date 2007-12-12 was not recognized as a date format
我认为问题在于它以字符串形式出现,但 JPA 感觉它需要生成一个 Date 对象来更新。
我很乐意展示我的代码,但这不是 Roo 为我构建的。
我突然想到,当它说“被识别为日期格式”时,它指的是某些东西。有什么地方可以更改它知道的日期格式吗?
编辑:在@nowaq 的帮助下,这是最终的答案:
public static Lease fromJsonToLease(String json) {
return new JSONDeserializer<Lease>()
.use(null, Lease.class)
.use(Date.class, new DateFormatter("yyyy-MM-dd"))
.deserialize(json);
}
这样,JSONDeserializer 就知道它正在处理哪个类,并为该类中的所有日期构建一个格式化程序。邪恶!
【问题讨论】:
标签: mysql spring date jpa spring-roo