Qual è il modo migliore per convertire tra LocalDate
da Java 8 e XMLGregorianCalendar
?Conversione tra LocalDate e XMLGregorianCalendar
risposta
Conversione da LocalDate
a XMLGregorianCalendar
:
LocalDate date = LocalDate.now();
GregorianCalendar gcal = GregorianCalendar.from(date.atStartOfDay(ZoneId.systemDefault()));
XMLGregorianCalendar xcal = DatatypeFactory.newInstance().newXMLGregorianCalendar(gcal);
La riconversione è più semplice:
xcal.toGregorianCalendar().toZonedDateTime().toLocalDate();
Durante la conversione da LocalDate a XMLGregorianCalendar, evitare GregorianCalendar! Il problema è che il fuso orario di GregorianCalendar è obbligatorio, ma LocalDate non contiene informazioni sul fuso orario! – riskop
convertire da LocalDate
a XMLGregorianCalendar
è possibile utilizzare
LocalDate localDate = ...;
GregorianCalendar calender = new GregorianCalendar();
Date utilDate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
calender.setTime(utilDate);
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(calender);
E per convertire XMLGregorianCalendar
tornare a LocalDate
:
XMLGregorianCalendar xmlCal = ...;
Date utilDate = xmlCal.toGregorianCalendar().getTime();
LocalDate localDate = LocalDateTime.ofInstant(utilDate.toInstant(), ZoneId.systemDefault()).toLocalDate();
I negozi LocalDate solo informazioni di anno/mese/giorno. Non ci sono tempo né informazioni sul fuso orario. La data di archiviazione XMLGregorianCalendar (anno/mese/giorno) + facoltativamente ora e facoltativamente informazioni sul fuso orario.
Quindi la conversione da LocalDate a XMLGregorianCalendar è semplice:
LocalDate in;
XMLGregorianCalendar out;
in = LocalDate.parse("1999-11-11");
out = DatatypeFactory.newInstance().newXMLGregorianCalendar(in.toString());
Conversione da XMLGregorianCalendar a LocalDate potrebbe non essere così semplice, perché XMLGregorianCalendar possono avere il tempo e fuso orario informazioni che semplicemente non si può memorizzare in LocalDate.
Tuttavia, suppongo che se si esegue la conversione da XMLGregorianCalendar a LocalDate, XMLGregorianCalendar deriva da un elemento xsd: date non timezonato (rappresentato come YYYY-MM-DD in xml). In questo caso si dovrebbe convertirlo in questo modo:
XMLGregorianCalendar in;
LocalDate out;
in = DatatypeFactory.newInstance().newXMLGregorianCalendar("2011-11-11");
out = LocalDate.parse(in.toXMLFormat());
intero esempio:
{
LocalDate in;
XMLGregorianCalendar out;
in = LocalDate.parse("1999-11-11");
out = DatatypeFactory.newInstance().newXMLGregorianCalendar(in.toString());
System.out.println("in: " + in.toString());
System.out.println("out: " + out.toXMLFormat());
}
{
XMLGregorianCalendar in;
LocalDate out;
in = DatatypeFactory.newInstance().newXMLGregorianCalendar("2011-11-11");
out = LocalDate.parse(in.toXMLFormat());
System.out.println("in: " + in.toXMLFormat());
System.out.println("out: " + out.toString());
}
- 1. Conversione tra LocalDate e sql.Date
- 2. Spring JDBC + Postgres SQL + Java 8 - conversione da/a LocalDate
- 3. Conversione tra SqlGeometry e DbGeometry
- 4. convertito XMLGregorianCalendar a java.sql.Timestamp
- 5. XMLGregorianCalendar confronto data
- 6. Come compilare XMLGregorianCalendar()
- 7. data Converti in XMLGregorianCalendar
- 8. java.util.Date a XMLGregorianCalendar
- 9. TimeCategory di Groovy con LocalDate e LocalDateTime
- 10. Come estrarre epoca da LocalDate e LocalDateTime?
- 11. LocalDate - Come rimuovere il carattere "T" in LocalDate
- 12. Converti calendario in XMLGregorianCalendar con formattazione specifica
- 13. Marshalling LocalDate con JAXB
- 14. come sostituire XmlGregorianCalendar per data?
- 15. String to LocalDate
- 16. Come convertire Joda Localdate in Joda DateTime?
- 17. Conversione tra spazi colore RGB e RYB
- 18. Conversione tra classe scala e Dinamica
- 19. conversione manuale tra caratteri ASCII e .NET
- 20. Conversione tra SQL char e C#
- 21. Conversione tra cv :: Mat e arma :: mat
- 22. Conversione tra Latin1-encoded Data.ByteString e Data.Text
- 23. Conversione tra std :: tuple e boost :: tuple
- 24. Come convertire java.time.ZonedDateTime in XMLGregorianCalendar?
- 25. Java 8 - Converti LocalDate in ZonedDateTime
- 26. LocalDate da Week and WeekYear
- 27. Come formattare LocalDate in stringa?
- 28. Disabilita conversione implicita tra typedef
- 29. Come sottrarre due oggetti XmlGregorianCalendar per creare un oggetto Durata?
- 30. Conversione tra int [ish] e double [ish] in asm.js
E 'simile a quello che è stato risposto qui http://stackoverflow.com/questions/835889/java-util -date-to-xmlgregoriancalendar? answertab = voti # tab-top –
@AnkurAnand Non penso che la domanda sia molto simile - avevo bisogno di convertire da 'LocalDate', non' Date', e ho richiesto una conversione in entrambe le direzioni. Le risposte potrebbero essere simili perché la conversione richiede "Data" come passaggio intermedio, ma la domanda non lo è. – maja