在Java应用程序中管理Time的最佳方法是什么?

时间:2008-09-23 22:24:12

标签: java hibernate

所以我正在使用hibernate并使用管理时间的应用程序。 在24小时制中处理时间的最佳方法是什么?

我不需要担心本应用程序开头的TimeZone问题,但最好确保在开始时内置此功能。

我也在使用hibernate,就像fyi一样

5 个答案:

答案 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/

优点列在项目主页上。