2

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

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

我也在使用hibernate,仅供参考

4

5 回答 5

4

将它们存储为 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#mapping-types-custom

但无论如何,我仍然会节省绝对时间。将来可能会有所帮助。

PS这一切都假设存储日期出于某种原因是不可能的。Date 中的 TimeZone 有时会妨碍您,真的。;)

于 2008-09-23T22:32:43.383 回答
2

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

于 2008-09-24T04:44:08.547 回答
1

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

于 2008-09-23T22:46:46.487 回答
0

java.util.Date应该使用;不是很长(而且绝对不是Calendar)。

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

于 2008-09-24T02:12:34.947 回答
0

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

优点列在项目主页上。

于 2010-06-08T19:51:49.077 回答