所以我正在使用hibernate并使用管理时间的应用程序。 在24小时制中处理时间的最佳方法是什么?
我不需要担心本应用程序开头的TimeZone问题,但最好确保在开始时内置此功能。
我也在使用hibernate,就像fyi一样
答案 0 :(得分:4)
将它们存储为ts = System.currentTimeMillis()。 该格式实际上是TimeZone安全的,因为它以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#mapping-types-custom
但我仍然可以节省绝对时间。可能在将来有所帮助。
P.S。由于某种原因,所有假设存储日期都是不可能的。 TimeZone in Date有时会妨碍我。 ;)
答案 1 :(得分:2)
我建议你研究一下使用Joda,http://joda-time.sourceforge.net/,它提供比核心日期和日历实现更直观和可控的时间处理功能。 JSR 310实际上是一个将新时间API包含在Java 7中的主张,它主要基于Joda。 Joda还提供时区相关的时间处理和与时区无关的时间处理,可以减少处理间隔时的困难。
答案 2 :(得分:1)
使用java.util.Date有什么问题吗?
答案 3 :(得分:0)
java.util.Date
;不长(绝对不是Calendar
)。
如果您使用的是注释,请务必使用@Temporal
答案 4 :(得分:0)
我最近还发现了另一个图书馆似乎是对JODA的回应。 http://www.date4j.net/
优点列在项目主页上。