Преобразование объекта XMLGregorianCalendar в формате String в объект XMLGregorianCalendar снова

Я преобразовал XMLGregorianCalendar объект для строки, используя toString() метод. Так что в строковой переменной у меня есть "2014-09-02T10:55:58.000+05:30", Теперь я хочу загрузить это значение в XMLGregorianCalendar объект снова

   GregorianCalendar cal = new GregorianCalendar();
        cal.setTime(new Date());
        XMLGregorianCalendar xgcal = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
        System.out.println(xgcal);
        String strDate = xgcal.toString();
        System.out.println("In String format "+strDate);

Я хочу сохранить это строковое значение в переменной типа XMLGregorianCalendar . Я использовал это SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); но не могу понять, что делать дальше. Надеюсь, я четко упомянул свою проблему. Пожалуйста, помогите мне. Заранее спасибо.

1 ответ

AFAIK вы можете использовать:

javax.xml.datatype.DatatypeFactory.newXMLGregorianCalendar(String lexicalRepresentation)

У меня была проблема, похожая на проблему, которую описывает OP. Я получил XMLGregorianCalendar и должен был сохранить его в строковом представлении. Для этого я использовал метод.toString() из XMLGregorianCalendar. Позже возникла необходимость прочитать сохраненную дату и вернуть ее в виде XMLGregorianCalendar, инкапсулированного в SOAP-сообщение.

В этом примере создается новый XMLGregorianCalendar (предполагается, что сохраненная строка читается в hereIsMyString):

XMLGregorianCalendar xmlDate = null;
try {
   xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(hereIsMyString);
    } catch (DatatypeConfigurationException ex) {
        // TODO Auto-generated catch block
        ex.printStackTrace();
    }
Другие вопросы по тегам