我必须准备一些应用程序来描绘资源的使用情况,但是有一天这一天有25个小时(23小时的一天不是一个大问题)。
如何用 Date 表示?这样做的最佳方式是什么?
我想使用 Date 类,(因为它有效, Comparable 等等)作为键,但我不确定这是否有效......有什么想法吗?
答案 0 :(得分:6)
Date
类本身只是代表UTC Unix时代的瞬间。它没有时区,日历等概念。
很难知道你究竟想要代表什么,但总的来说Joda Time是一个很多更好的日期/时间API,而不是java.util。*。< / p>
我在思考与时间相关的问题时的主要建议是真正,非常清楚每个价值意味着代表什么概念。如果您对当地日期(特定日历中的日期,没有参考特定时区)感兴趣,那么Joda Time的LocalDate
课程可能就是您所追求的。如果您需要关联时区信息,那么DateTime
可能是您最好的选择 - 尽管确实代表特定日历和时区内的瞬间,而不是一整天。
答案 1 :(得分:1)
重要的是不要混淆时间的表示方式和显示方式。
在它的表示中,你只有自1970年1月1日以来的毫秒数。当你对此进行计算时,你只是比较这个长值。
当您显示此时间/日期时,根据您的时区,您可以在同一天使用25小时或23小时的时间。