8

我得到一个 Date 对象,我需要将其转换为 XMLGregorian Calendar 特定格式

我尝试了以下方法

String formattedDate = sdf.format(categoryData.getBulkCollectionTime()); //yyyy-MM-dd HH:mm:ss
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(formattedDate);
dataListType.setTimestamp(xmlCal);

我遇到了一个例外,我肯定在这里做错了。但是我想将 Date 对象格式化为指定的格式,这可以完美地由 sdf.format 完成。

但是我如何创建相同的 XMLGregorianCalendar 对象(来自 formattedDate)?

4

2 回答 2

6

你应该修复你的日期格式:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String date = sdf.format(new Date());
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(date);
于 2013-01-18T05:38:45.837 回答
5

您可以通过日期对象本身来做到这一点:

String formattedDate = sdf.format(categoryData.getBulkCollectionTime()); //yyyy-MM-dd HH:mm:ss
convertStringToXmlGregorian(formattedDate);


public XMLGregorianCalendar convertStringToXmlGregorian(String dateString)
{
      try {
            Date date = sdf.parse(dateString);
            GregorianCalendar gc = (GregorianCalendar) GregorianCalendar.getInstance();
            gc.setTime(date);
            return DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
        } catch (ParseException e) {
            // Optimize exception handling
            System.out.print(e.getMessage());
            return null;
        } 

}
于 2013-01-18T05:36:44.787 回答