具有特定格式的XMLGregorianCalendar日期

时间:2013-01-18 05:16:52

标签: java xml date calendar

我得到一个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)?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:4)

您可以通过日期对象本身来执行此操作:

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;
        } 

}