【发布时间】:2010-11-24 17:06:36
【问题描述】:
字段定义
/** Date. */
@Column(columnDefinition = "datetime")
private Date date;
二传手
public void setDate(final Date date) {
DateFormat dfmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
this.date = dfmt.parse(dfmt.format(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
有人知道如何将“零日期”转换为正确的值吗? 因为我有错误:
Cannot convert value '0000-00-00 00:00:00' from column 13 to TIMESTAMP
即使我像这样设置“默认”字段和设置器:
/** Date. */
@Column
private Date date;
public void setDate(final Date date) {
this.date = date;
}
我还是会遇到同样的问题....
【问题讨论】:
-
在我看来 0000-00-00 00:00:00 并不对应于任何实际的时间点,因此它基本上不能转换为时间戳值。你想要的行为是什么?是否要将无效的 ISO 日期转换为默认值?
-
从表中获取数据(表中不止一列)后的下一步是将其写入 XML 但是(!)我不会将日期值写入 XML,所以我只是想从表中获取数据,然后我将永远不会调用 getDate() 方法。
-
"你想让它把无效的 ISO 日期转换成默认值吗?" - 是的,如果可能的话……