当我通过带有java的Web服务获取对象并在编辑了它的某些字段后,当我想用相应的Web服务方法将其保存回来时,我会遇到日期字段格式的问题。
我无法修改的Web服务的api使用类Java - Calendar作为带日期的相应字段。 xml中dateTime的可接受格式为:yyyy-MM-dd' H&C; HH:mm:ss like
<Generated>2017-03-21T10:22:55</Generated>
但在更新了一些数据并尝试保存后,我收到以下错误:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode:
faultString: Invalid property (E3010)
faultActor:
faultNode:
faultDetail:
{}:null
在肥皂回应中有类似的东西:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Invalid property (E3010)</faultstring>
<faultactor/>
<detail>Property (of type 'dateTime') has badly formatted value '2017-03-21T10:22:55.000Z'. Data path: SaveRequest->Generated</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
问题在于我不知道如何消除毫秒和“Z&#39;从价值。
我尝试过类似的事情:
Calendar calendar = object.getGenerated();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String formatted = formatter.format(calendar.getTime());
calendar = javax.xml.bind.DatatypeConverter.parseDateTime(formatted);
但是它不起作用,因为Calendar类正在设置毫秒和&#39; Z&#39;在Web服务的属性中。
知道如何解决这个问题吗?我的意思是删除毫秒和&#39; Z&#39;从Calendar属性?