2017-08-23 3 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) { 
}; 

Ich versuche XMLGregorianCalendar Datum zu formatieren. Die obigen Codeformate auch für Format "yyyy-MM-dd'T'HH:mm:ss'Z'"XMLGregorianCalendar Datumsformat 'TT/MM/JJJJ HH: mm: ss.SSS'

Aber für formatB dd/MM/yyyy HH:mm:ss.SSS es wirft Fehler

java.lang.IllegalArgumentException 

Sie Ratschläge, wie man es beheben. Ich danke dir sehr!

log

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 ist Linie 4, in dem obigen Code 'XMLGregorianCalendar gregFmt ...'

+0

Welcher Teil Ihrer riesigen Linie wirft diese Ausnahme? –

+0

Es ist dieser Teil des Codes 'newXMLGregorianCalendar', der keine Datumsangaben im Format TT/MM/JJJJ HH: mm: ss.SSS haben kann, die im Protokoll zu – RahlSK

+0

hinzugefügt wurden, versuchen, Zeitzone im Datumsformat hinzuzufügen. sdf.setTimeZone (TimeZone.getTimeZone ("UTC")); –

Antwort

2

Das Format, das akzeptieren newXMLGregorianCalendar(string) in the XML specs beschrieben und unterscheidet sich von der formatB Sie versuchen, benutzen.

+0

Der Link, den du vom Javadoc erhalten hast, verlinkt auf den falschen Anker. Die lexikalische Darstellung ist unter https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation angegeben. – SpaceTrucker

+0

Tatsächlich bekam ich es vom Javadoc, tatsächlich war es der falsche Anker. Geändert, danke. – bracco23

Verwandte Themen