0
我有一個實體字段被聲明爲Date並被映射到oracle中的日期字段。 當我打印該字段的值時,我得到日期格式,如2013-04-23 09:05:03.0
。Oracle到Hibernate到ISO 8601日期格式
我需要將此日期轉換爲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
從休眠結束2013-04-23 09:05:03.0
?我如何獲得完整的日期?
當我通過Date
,我得到的結果,我需要:
System.out.println("Converted Date:" + asXMLGregorianCalendar(new Date());
// Output
Converted Date: 2013-08-23T17:19:15.664-05:00
這正是我需要的。而不是000
,我需要得到毫秒。 Hibernate是否在做日期?
0是毫秒。 '全日'是什麼意思?打印出來的日期對我來說看起來很滿。然後再次ISO 8601格式太含糊。 ISO 8601描述了大量的日期/時間格式。你能告訴我你試圖達到的日期的格式是什麼嗎?然後,我可以幫助你如何實現它。 – SerotoninChase
謝謝,我更新了我的問題。請檢查 –
問題似乎是,無論是將數據*放入數據庫,都會截斷到最近的一秒。打印出來的代碼很好。 – Affe