2016-07-04 5 views
-2

Я получаю отклик капитала (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> 

`

+0

Как вы хотите конвертировать NULL в дату? У вас вопрос практически не имеет соответствующей информации. – JSantos

+0

просто верните «null» – Jens

+0

if («NULL» .equals (response)) return null. –

ответ

0

Что-то подобное может решить вашу проблему:

if (toBeParsed.equals("NULL")) { 
    date = null;  
} else { 
    // Try to parse toBeParsed 
    date = .... 
} 
+0

Пожалуйста, проверьте мой отредактированный Question.I предоставил код, который я использовал. Я могу добиться того, что вы предоставили. Проблема здесь в том, что я получаю ответ как «NULL». (capital NULL). – sarav