2014-10-23 15 views
6

Ho trovato che Java 8 non ha un valore equivalente a ZonedDateTime ma che funziona solo con Ora (a ZonedTime classe o qualcosa del genere). Io so hanno incluso la classe OffsetTime, ma memorizza solo l'offset.Java 8, perché non una classe ZonedTime?

La memorizzazione di fusi orari insieme a data e ora, invece di memorizzare l'offset, aiuta a gestire l'ora legale in modo più semplice.

Non ti sto chiedendo di darmi delle alternative, so che ci sono molti approcci; Mi sto solo chiedendo perché tale classe non sia stata inclusa, è un problema di design? o l'hanno appena trovato ridondante?

+0

La tua domanda non ha senso. Tu dici "Java 8 non ha un equivalente a ZonedDateTime" pur includendo un collegamento al molto Java 8 doc che definisce quella classe ZonedDateTime in bundle in Java 8. –

+0

Accetto che forse la mia domanda non era ben formulata, ma penso che sia ancora valido. Penso che la maggior parte delle persone abbia capito il punto. –

+0

In una terza lettura sembra che la tua ricerca riguardi una classe che definisce un valore solo per l'ora del giorno senza alcuna data che abbia ancora un offset da UTC o persino un fuso orario. Come afferma correttamente la [risposta accettata da Meno Hochschild] (http://stackoverflow.com/a/26541249/642706), può sembrare intuitivamente una buona idea, ma è problematica. I fusi orari e gli offset vengono ridefiniti a causa di politica e confini, ora legale e altre anomalie. Senza una data, il fuso orario non ha un significato specifico. –

risposta

10

L'introduzione di una classe ZonedTime costituita da LocalTime e un fuso orario (anziché un offset semplice) sarebbe un grave errore.

Il tipo suggerito non contiene una data. Ma senza una data non sarà possibile valutare l'offset del fuso orario reale per mappare l'ora locale a qualsiasi ora globale ragionevole. Per tenere conto di tutti gli aspetti dell'illuminazione legale è necessario avere anche una data e un'ora.

+1

Ci avevo già pensato prima, ma penso che sarebbe utile in alcuni casi. Comunque, grazie per la risposta. Lo userei, ad esempio, per memorizzare il tempo di un orario scolastico; Non eseguirò conversioni in cui la data è importante, voglio solo sapere a che ora inizia e termina la lezione per mostrarla agli utenti in altre parti del mondo. –

+0

@JuanLhc Per mostrare gli orari di inizio e fine della lezione alle persone in un'altra parte del mondo, è comunque necessario conoscere la data. Altrimenti sarà impossibile determinare la differenza di offset, dato che non si può sapere se l'offset dell'ora legale o dell'inverno deve essere utilizzato. – bowmore

+0

Hai perfettamente ragione. Grazie per la risposta! –

Problemi correlati