Я получаю отклик капитала (NULL) из внешней системы, из которой мне нужно преобразовать формат XMLGregorian date &, чтобы установить его в объект XMLGregorian. Может ли кто-нибудь помочь с этим? Ниже приведен фрагмент кода я пытаюсь разобрать с:Есть ли способ проанализировать значение NULL для формата XMLGregorian Date?
public static XMLGregorianCalendar toXMLGregorianCalendarWithTimeZone(String date)
throws ParseException, DatatypeConfigurationException {
String format = "dd/MM/yyyy HH:mm:ss Z";
GregorianCalendar cal = new GregorianCalendar();
SimpleDateFormat formatter = new SimpleDateFormat(format);
formatter.setTimeZone(cal.getTimeZone());
cal.setTime(formatter.parse(date));
XMLGregorianCalendar calendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY),
cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), DatatypeConstants.FIELD_UNDEFINED,
cal.get(Calendar.ZONE_OFFSET));
return calendar;
}
Мой SoapUI Запрос полезной нагрузки:
<soapenv:Header/>
<soapenv:Body>
<UsageHis>
<versionID>1</versionID>
<DeviceID>1234</DeviceID>
<StartDateandTime>2016-09-09 10:10:10</StartDateandTime>
<EndDateandTime>2016-09-09 10:10:10</EndDateandTime>
<StartRange>1</StartRange>
<EndRange>12</EndRange>
<TransactionType>cdr</TransactionType>
</UsageHis>
</soapenv:Body>
Мой SoapUI Ответ:
`
<env:Body>
<UsageHisResponse>
<Status>
<statusCode>SUCCESS</statusCode>
<errorCode>NULL</errorCode>
<errorDescription>NULL</errorDescription>
<TotalNoOfRecords>1</TotalNoOfRecords>
</Status>
RECORDS>
<CDR>
<StartTime>09/09/2016 00:00:00 CDT</StartTime>
<DownLoadVolume>20</DownLoadVolume>
<UploadVolume>10</UploadVolume>
<UserVolume>0</UserVolume>
<DeviceVolume>0</DeviceVolume>
</CDR>
</RECORDS>
<UsageHisResponse>
</env:Body>
`
Как вы хотите конвертировать NULL в дату? У вас вопрос практически не имеет соответствующей информации. – JSantos
просто верните «null» – Jens
if («NULL» .equals (response)) return null. –