2017-08-23 129 views
0
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'"XMLGregorianCalendar日期格式'dd/MM/yyyy HH:mm:ss.SSS'

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

line19是4号线,在上面的代码“的XMLGregorianCalendar gregFmt ......”

+0

你巨大的一行是抛出这个异常? –

+0

这是代码'newXMLGregorianCalendar'的这部分,不能采取日期格式dd/MM/yyyy HH:mm:ss.SSS我在日志中添加了以上 – RahlSK

+0

尝试添加日期格式的时区。 sdf.setTimeZone(TimeZone.getTimeZone(“UTC”)); –

回答

2

newXMLGregorianCalendar(string)接受the XML specs描述,是从formatB您尝试不同的格式使用。

+0

您似乎从javadoc获得的链接链接到错误的锚点。词汇表示在https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation中指定。 – SpaceTrucker

+0

事实上,我从javadoc那里得到了它的确,它确实是错误的锚点。改变,谢谢。 – bracco23