2

我已经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 类型的变量中。我使用了 thsiSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");但不明白接下来要做什么。希望我清楚地提到了我的问题。请帮我。提前致谢。

4

1 回答 1

2

AFAIK 你可以使用:

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

我遇到了与 OP 描述的问题类似的问题。我有一个 XMLGregorianCalendar 并且必须将它存储在一个字符串表示中。为此,我使用了 XMLGregorianCalendar 中的 .toString() 方法。后来需要读取存储的日期并将其作为封装在 SOAP 消息中的 XMLGregorianCalendar 返回。

此示例创建一个新的 XMLGregorianCalendar(假设存储的 String 被读取到hereIsMyString):

XMLGregorianCalendar xmlDate = null;
try {
   xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(hereIsMyString);
    } catch (DatatypeConfigurationException ex) {
        // TODO Auto-generated catch block
        ex.printStackTrace();
    }
于 2016-09-19T14:34:15.877 回答