2013-01-03 60 views
5

我在將日曆對象轉換爲格式爲YYYY-MM-DD HH:mm:ss的XMLGregorian日曆時遇到了一些問題。將日曆轉換爲具有特定格式的XMLGregorianCalendar

我當前的代碼是:

Calendar createDate = tRow.getBasic().getDateCreated(0).getSearchValue(); 
Date cDate = createDate.getTime(); 
GregorianCalendar c = new GregorianCalendar(); 
c.setTime(cDate); 
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c); 

返回的2013-01-03T11:50:00.000-05:00日期。

我想讀它2013-01-03 11:50:00

我檢查了一堆帖子,它們使用DateFormat解析日期的字符串表示,但是我的日期作爲日曆對象提供給我,而不是字符串。

我會很感激在正確的方向輕推幫我找出這一個。

回答

2

一個的XMLGregorianCalendar有一個特定的W3C字符串表示不能更改。

但是,您可以使用SimpleDateFormat格式化Date

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String dateStr = dateFormat.format(cDate); 

可以從XMLGregorianCalendar對象得到Date對象如下:

xmlCalendar.getGregorianCalendar().getDate() 
+1

我並不需要從一個的XMLGregorianCalendar的日期,而是將其設置。 XMLGregorianCalendar是接收Web服務所必需的。 –

+0

對,如果你想格式化日期與默認的不同,那麼你需要使用一個Date對象。你從其中的一個開始,所以你根本不需要XMLGregorianCalendar。 –

+0

是的,我希望我可以避免編輯生成的類從XMLGreg ...到日期,但看起來像我必須反正 –

1

DateFormat#format需要Object參數。從內存,它應該接受一個Calendar對象,如果沒有,它會接受一個Date對象,所以你可以使用Calendar#getTime爲最壞情況

您可以使用SimpleDateFormat一個實例來指定自定義格式。這將確保不同系統的結果始終相同

相關問題