2016-02-04 102 views
0

我的類:傑克遜日期時間模式不顯示時區正確

@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssZ", timezone="UTC") 
protected XMLGregorianCalendar dateTime; 

我的日期實例:

XMLGregorianCalendar dateTime = DatatypeFactory.newInstance().newXMLGregorianCalendar("2013-04-10T15:27:37+01:00"); 
obj.setDateTime(dateTime); 

翻譯:

ObjectMapper xmlMapper = new XmlMapper(); 
xmlMapper.setSerializationInclusion(Include.NON_NULL); 
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + xmlMapper.writeValueAsString(object); 

輸出:

<DateTime>2013-04-10T14:27:37+0000</DateTime> 

預期輸出:

<DateTime>2013-04-10T15:27:37+01:00</DateTime> 

爲什麼時區和時區格式迷失在翻譯?

回答

1

您正在將Jackson的時區設置爲UTC。看到你的註釋:@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssZ", timezone="UTC")
我認爲輸出正是你所期望的,因爲UTC有timezoneoffset +0000

+0

我需要做些什麼才能使它成爲「'+01:00'」? – Hooli

+0

將時區屬性更改爲您期望的時區。 +0100會是某種CET(例如歐洲/柏林或巴黎) – Abbel

+0

缺少':'怎麼辦? – Hooli