Каков наилучший способ управления временем в приложении Java?
Поэтому я использую hibernate и работаю с приложением, которое управляет временем. Как лучше всего справляться со временем за 24 часа?
Мне не нужно беспокоиться о проблемах TimeZone в начале этого приложения, но было бы лучше убедиться, что эта функциональность встроена в самом начале.
Я использую Hibernate, а также как Fyi
5 ответов
Сохраните их как long ts = System.currentTimeMillis(). Этот формат на самом деле безопасен по времени, так как он возвращает время в UTC.
Если вам нужна только часть времени, я не знаю о встроенном типе в Hib, но написание собственного типа Time24 тривиально - просто реализуйте org.hibernate.UserType или org.hibernate.CompositeUserType (load=nullSafeGet и методы store=nullSafeSet в них).
См. http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html.
Но я все равно сэкономил бы абсолютное время. Может помочь в будущем.
PS Вот и все, что предполагает сохранение даты по какой-то причине. TimeZone в Date иногда мешает, правда.;)
Я бы посоветовал вам воспользоваться Joda, http://joda-time.sourceforge.net/, которая предлагает гораздо более интуитивно понятную и управляемую функциональность обработки времени, чем основные реализации Date и Calendar. JSR 310 на самом деле является предложением включить новый API времени в Java 7, который будет в основном основан на Joda. Joda также предлагает обработку времени, зависящую от часового пояса, и независимую от часового пояса обработку, что облегчает работу с интервалами.
java.util.Date
должен быть использован; не долго (и определенно не Calendar
).
Если вы используете аннотации, обязательно используйте @Temporal
Я также недавно нашел другую библиотеку, которая, кажется, является ответом на JODA. http://www.date4j.net/
Преимущества перечислены на домашней странице проекта.