1

在java中,我想知道为显示、查询、报告等保留日期信息的最佳做法是什么。似乎如果我们坚持这么久,所有时区依赖性将被删除,我们将保持“全局持久,本地显示” ' 原理,因为 Date 对象会自动将 long 转换为当前时区。

但是持久化为 Date 对象有什么好处呢?
除了信息所有者的时区之外,我是否会丢失任何信息?
考虑到 DLS 时,我会得到任何错误信息吗?
坚持为 UTC 日期和 long 之间的区别只是可读的数据库信息?

4

1 回答 1

1

根据您的数据库,您应该使用其中一个,TIMESTAMP WITH TIMEZONE或者将其转换为UTC时间并将其存储为long.

第一个依赖于数据库来正确处理它(数据库会,但你的数据库驱动程序会吗?你必须为你的设置测试这个)。第二个让它成为一个手动过程,你最终会得到正确的结果,但会更麻烦,因为你必须照顾好一切。

在 Java 中,您可能希望使用Calendarover,Date因为您可以TIMEZONE手动指定等,因此您可以更轻松地在与您自己不同的时区中显示日期。

于 2013-05-21T08:40:29.267 回答