具有特定格式的XMLGregorianCalendar日期

Red*_*ddy 7 java xml calendar date

我得到一个Date对象,我需要转换为XMLGregorian日历特定格式

我尝试了以下方法

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

我得到一个例外,我肯定在这里做错了.但我想将Date对象格式化为指定的格式,这完全由sdf.format完成.

但是如何为相同的(从formattedDate)创建XMLGregorianCalendar对象?

Evg*_*eev 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);
Run Code Online (Sandbox Code Playgroud)


Dan*_*ush 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;
        } 

}
Run Code Online (Sandbox Code Playgroud)

  • 我试过你的例子,但在输出值中我得到“2013-01-18T07:46:00.000”作为输出。我不要“T” (3认同)