2014-04-23 17 views
9

C'è qualche modo per convertire java.time.ZonedDateTime in XMLGregorianCalendar?Come convertire java.time.ZonedDateTime in XMLGregorianCalendar?

Forse ho bisogno di alcuni passaggi intermedi come convertire ZonedDateTime in java.util.Date, ma questo renderà il codice troppo disordinato.

Il problema è apparso nei servizi web JAX-WS, datetime è passato come XMLGregorianCalendar.

+0

mostrare un po 'di codice come si sta facendo. Ho avuto quel problema, ma per convertire da XMLGregorianCalendar a una data normale senza il fuso orario solo semplice 'yyyy-MM-gg 'data. A causa del fatto che Java JAX-WS associa le date a XMLGregorianCalendar invece di Date anche se lo hai definito come tale nei tipi di dati WSDL. – Omoro

risposta

18

Al momento attuale penso che sia il modo più semplice per farlo:

ZonedDateTime now = ZonedDateTime.now(); 
GregorianCalendar gregorianCalendar = GregorianCalendar.from(now); 
XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar);