具有特定格式的XMLGregorianCalendar的日期

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

我尝试了以下方法

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

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

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

您可以通过日期对象本身来完成:

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

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

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