2017-08-23 69 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