我的课程:
@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>
为什么时区和时区格式会在翻译中丢失?
答案 0 :(得分:1)
您正在将Jackson的时区设置为UTC。请参阅您的注释:@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssZ", timezone="UTC")
我认为输出正是您所期望的,因为UTC具有timezoneoffset +0000