2013-11-22 37 views
0

干擾抓具體日期我有一個XMLGregorianCalendar,我想轉換爲Java Date對象,但是當我試圖隱蔽這樣的:沒有時區與的XMLGregorianCalendar在Java中

2013-11-19T00:00:00-00:00 

我總是帶有日期一天後面的價值。

Mon Nov 18 17:00:00 MST 2013 

我只想要一個包含11/19/2013的日期對象。

+0

有沒有一些代碼? –

+0

只是頭向上我沒有辦法修改XmlGregorianType。 –

+0

價值並不落後一天。這是時間確切的時間...'2013-11-19T00:00:00-00:00'是UTC的午夜,這是您的時區前一天的5PM Mountain標準時間。 – dcsohl

回答

0

我只是做這個,

Date startDate = new Date(request.getStartTime().getYear(), request.getStartTime().getMonth(), request.getStartTime().getDay(), 0, 0, 0); 
4

如上評論,你得到的結果是正確的 - 它在時間的同一時刻。午夜UTC是前一天的5點MST。也許你應該看看爲什麼你的時間是「-00:00」,而不是「-07:00」(MST)......但在同時,我想你可以試試這個:

public static void main(String... args) throws DatatypeConfigurationException { 
    XMLGregorianCalendar xcal = DatatypeFactory.newInstance().newXMLGregorianCalendar("2013-11-19T00:00:00-00:00"); 

    Calendar c = xcal.toGregorianCalendar(); 
    c.setTimeZone(TimeZone.getDefault()); 
    Date d = c.getTime(); 
    System.out.println(d); 
} 

打印出Tue Nov 19 00:00:00 EST 2013,並將在一天的其他時間,而不僅僅是午夜。