java Oracle将休眠为ISO 8601日期格式
我有一个实体字段声明为日期,并映射到oracle中的日期字段。
当我打印该字段的值时,我会得到像2013-04-23 09:05:03.0
这样的日期格式
我需要把这个日期转换成ISO 8601格式。所以我用了:
System.out.println("Converted Date:" + asXMLGregorianCalendar(retrunedDate);
private static DatatypeFactory df = DatatypeFactory.newInstance();
public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) {
if (date == null) {
return null;
} else {
DatatypeFactory df = DatatypeFactory.newInstance();
GregorianCalendar gc = new GregorianCalendar();
gc.setTimeInMillis(date.getTime());
return df.newXMLGregorianCalendar(gc);
}
}
以下代码返回:
System.out.println("Converted Date:" + asXMLGregorianCalendar(retrunedDate);
// Output
Converted Date: 2013-04-23T09:05:03.000-05:00
问题:
- 有
000
而不是实际的数字。不知道为什么李> - 冬眠结束时的
0
是什么?我怎样才能得到完整的约会李>
当我通过Date
时,我得到了我需要的结果
System.out.println("Converted Date:" + asXMLGregorianCalendar(new Date());
// Output
Converted Date: 2013-08-23T17:19:15.664-05:00
这就是我需要的。我需要的不是000
,而是毫秒。
Hibernate和约会有什么关系吗
# 1 楼答案
Oracle
DATE
数据类型不存储小数秒。如果要存储和恢复毫秒,需要将列的数据类型更改为TIMESTAMP