String formatA ="yyyy-MM-dd'T'HH:mm:ss'Z'";
String formatB = "dd/MM/yyyy HH:mm:ss.SSS";
try {
XMLGregorianCalendar gregFmt = DatatypeFactory.newInstance().newXMLGregorianCalendar(new SimpleDateFormat(formatB).format(new Date()));
System.out.println(gregFmt);
} catch (DatatypeConfigurationException e) {
};
我正在尝试格式化 XMLGregorianCalendar 日期。
上面的代码格式很好地适合格式 "yyyy-MM-dd'T'HH:mm:ss'Z'"
但是对于 formatB dd/MM/yyyy HH:mm:ss.SSS
它会抛出错误
java.lang.IllegalArgumentException
就如何修复它提供建议。非常感谢!
日志
Exception in thread "main" java.lang.IllegalArgumentException: 23/08/2017 16:13:04.140
at com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parseAndSetYear(XMLGregorianCalendarImpl.java:2887)
at com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parse(XMLGregorianCalendarImpl.java:2773)
at com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl.<init>(XMLGregorianCalendarImpl.java:435)
at com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar(DatatypeFactoryImpl.java:536)
at test.test.main(test.java:19)
第 19 行是第 4 行,在上面的代码“XMLGregorianCalendar gregFmt...”
最佳答案
newXMLGregorianCalendar(string)
接受的格式在 the XML specs 中描述。并且与您尝试使用的 formatB
不同。
关于java - XMLGregorianCalendar 日期格式 'dd/MM/yyyy HH:mm:ss.SSS',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45833927/