我有一個xml文件,它有一個表示時間戳的字段。時間字段是可選的,因此沒有組合的日期時間字段。使用JAXB我們將這個字段映射到我們的java模型中的XMLGregorianCalendar。如何正確地將xs:time轉換爲java日期
現在我的問題是如何將這個時間轉換爲正確的當地時間(比如說歐洲/柏林夏令時)在xml中給出的日期?
在XML文件中的時間如下所示:
<timeField>14:20:00.0+02:00</timeField>
要麼沒有指定的偏移量(和被假定爲本地時間)或它被指定爲一個偏移量爲UTC。
如果我嘗試
xmlGregorianCalendarDate.toGregorianCalendar().getTime();
那麼假定時區是sun.util.calendar.ZoneInfo[id="GMT+02:00",offset=7200000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
不採取DST考慮。
相反,如果我使用xmlGregorianCalendarDate.toGregorianCalendar(timeZone).getTime();
,那麼它會完全放棄xml的偏移,轉而使用指定的時區。
你有日期字段? – vikingsteve