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

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

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

有帮助吗?

解决方案

将它们存储为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有时会妨碍我。 ;)

其他提示

我建议您考虑使用Joda, http://joda-time.sourceforge.net/ ,提供比核心日期和日历实现更直观和可控的时间处理功能。 JSR 310实际上是一个将新时间API包含在Java 7中的主张,它主要基于Joda。 Joda还提供时区相关的时间处理和与时区无关的时间处理,可以减少处理间隔时的困难。

使用java.util.Date有什么问题吗?

应该使用

java.util.Date ;不长(绝对不是日历)。

如果您使用注释,请务必使用 @Temporal

我最近还发现了另一个图书馆似乎是对JODA的回应。 http://www.date4j.net/

优点列在项目主页上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top