Qual è il modo migliore per gestire Time in un'applicazione Java?
Domanda
Quindi sto usando l'ibernazione e sto lavorando con un'applicazione che gestisce il tempo. Qual è il modo migliore per gestire gli orari in un orologio di 24 ore?
Non devo preoccuparmi dei problemi di TimeZone all'inizio di questa applicazione, ma sarebbe meglio assicurarsi che questa funzionalità fosse integrata all'inizio.
Sto usando anche l'ibernazione, proprio come una chiacchierata
Soluzione
Conservali come long ts = System.currentTimeMillis (). Tale formato è in realtà TimeZone sicuro in quanto restituisce il tempo in UTC.
Se hai solo bisogno di una parte temporale, beh, non sono a conoscenza del tipo incorporato in Hib, ma scrivere il tuo tipo Time24 è banale: implementa org.hibernate.UserType o org.hibernate.CompositeUserType ( load = nullSafeGet e store = nullSafeSet metodi in loro).
Vedi http: //docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-types-custom
Ma risparmierò comunque del tempo assoluto comunque. Potrebbe essere utile in futuro.
P.S. È tutto presumendo che la memorizzazione della data sia fuori discussione per qualche motivo. TimeZone in Date a volte si mette in mezzo, davvero. ;)
Altri suggerimenti
Suggerirei di esaminare Joda, http://joda-time.sourceforge.net/ , che offre funzionalità di gestione del tempo molto più intuitive e controllabili rispetto alle principali implementazioni di data e calendario. JSR 310 è in realtà una proposta per includere una nuova API time in java 7 che sarà basata in gran parte su Joda. Joda offre anche la gestione del tempo dipendente dal fuso orario e la gestione del tempo indipendente dal fuso orario che facilita le difficoltà nel gestire gli intervalli.
C'è qualcosa di sbagliato nell'uso di java.util.Date?
java.util.Date
dovrebbe essere usato; non molto tempo (e sicuramente non un Calendario
).
Se stai usando le annotazioni assicurati di usare @Temporal
Di recente ho anche trovato un'altra libreria che sembra essere una risposta a JODA. http://www.date4j.net/
I vantaggi sono elencati nella home page del progetto.