Qual è il modo più semplice per ottenere un oggetto Calendar
da java.time.Instant
o java.time.ZonedDateTime
?Conversione di java.time in Calendario
risposta
Ottenere un Calendar
immediato da ZonedDateTime
è abbastanza straight-forward, a condizione di sapere che esiste un metodo GregorianCalendar#from(ZonedDateTime)
. C'è stata una discussione in Threeten-dev mail group, sul perché il metodo non è nella classe Calendar
. Non una discussione molto profonda però.
Tuttavia, non esiste un modo diretto per convertire da Instant
a Calendar
. Hai di avere uno stato intermedio per questo:
Instant instant = Instant.now();
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
Calendar cal1 = GregorianCalendar.from(zdt);
Questo è probabilmente perché, come evidente dalla tabella a this oracle tutorial, un Instant
mappe a Date
piuttosto che un Calendar
. Allo stesso modo, un ZonedDateTime
esegue il mapping su un Calendar
.
Che ne dici di GregorianCalendar.from(ZonedDateTime.ofInstant(instant, zoneId))
?
Impossibile ottenere ZonedDateTime da TemporalAccessor: 2001-12-17T09: 30: 47Z di tipo java.time.Instant – Line
In effetti, è necessario specificare anche un ZoneId. Ho aggiornato la mia risposta. –
È necessario ottenere il fuso orario utilizzando l'istante e quindi è possibile ottenere un calendario.
Calendar myCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()));
- 1. C# conversione calendario ritorna System.ArgumentOutOfRangeException
- 2. Utilizzo dell'API java.time in scala
- 3. Android N Java8 java.time
- 4. Come convertire java.sql.timestamp in LocalDate (java8) java.time?
- 5. JAXB può gestire oggetti java.time?
- 6. Adattatore calendario e calendario personalizzato
- 7. java.time DateTimeFormatter pattern per offset fuso orario
- 8. java.time: DateTimeParseException per la data "20150901023302166"
- 9. Calendario Maya in Java
- 10. Converti calendario in XMLGregorianCalendar con formattazione specifica
- 11. Ripetizione di "Eventi" (Calendario)
- 12. java.time: il fuso orario CET considera l'ora legale?
- 13. API calendario vs API calendario fornitore
- 14. tempo Converti sulla base di fuso orario utilizzando java.time
- 15. Conversione di steady_clock :: time_point in time_t
- 16. Esempio di calendario completo in jquery
- 17. Trova precedente giorno di calendario in python
- 18. Visualizzazione calendario in un'applicazione Android
- 19. persiano Calendario in MVC, Asp.net
- 20. UI del calendario in Android
- 21. Aggiunta di giorni al calendario
- 22. implementazione di un semplice calendario
- 23. Calendario di visualizzazione anno completo?
- 24. magento aggiungi il calendario di selezione calendario al modulo personalizzato in admin (modulo personalizzato)
- 25. È possibile impostare un calendario c uguale al calendario c2?
- 26. ASP.NET MVC Calendario AJAX
- 27. Comportamento strano del calendario
- 28. Tamil Calendario Visualizza
- 29. Link di Hangout di Google dal calendario
- 30. Mostra calendario su php
Che cosa hai provato? Qual è il problema? Il javadoc è disponibile gratuitamente, lo sai. –
A giudicare dalla tua reputazione, sospetto che tu abbia probabilmente testato 'Calendar cal = Calendar.getInstance(); cal.setTimeInMillis (Instant.now(). toEpochMilli()); 'quindi cosa c'è di sbagliato in questa soluzione? – Pshemo
E probabilmente hai anche provato - 'GregorianCalendar.from (zonedDateTime);' –