为了完成菲利普的答案(感谢他!),也许这会帮助你们中的一些人......
我不得不在关注字段日期声明一个新的XmlAdapter,并带有注释@XmlJavaTypeAdapter
public class YourDTO {
// ...
@XmlElement
@XmlSchemaType(name = "dateTime")
@XmlJavaTypeAdapter(type = XMLGregorianCalendar.class, value = XmlDateAdapter.class)
public Date yourDate;
// ...
}
适配器
public class XmlDateAdapter extends XmlAdapter<XMLGregorianCalendar, Date> {
@Override
public XMLGregorianCalendar marshal(Date date) throws Exception {
GregorianCalendar gcal = new GregorianCalendar();
gcal.setTime(date);
XMLGregorianCalendar xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(gcal);
xmlDate.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
return xmlDate;
}
// ...
之前的 SOAP 消息日期格式
2017-04-18T00:00:00+02:00
之后的 SOAP 消息日期格式
2017-04-18T00:00:00