在java中,我想知道保留日期信息以供显示、查询、报告等的最佳实践是什么。似乎如果我们坚持这么久,所有时区依赖性都将被删除,并且我们将保持“全局保留,本地显示”原则,因为Date对象会自动将long转换为当前时区。
但是保留为 Date 对象有什么好处?
除了信息所有者的时区之外,我是否会丢失任何信息?
当 DLS 考虑时我会得到任何错误的信息吗?
持久保存为 UTC 日期和 long 之间的区别只是可读的数据库信息?
最佳答案
根据您的数据库,您应该使用 TIMESTAMP WITH TIMEZONE
或将其转换为 UTC
时间并将其存储为 long
。
第一个依赖于数据库来正确处理它(数据库会,但是你的数据库驱动程序会吗?你必须针对你的设置进行测试)。第二个使其成为一个手动过程,您最终会得到正确的结果,但会遇到更多麻烦,因为您必须照顾一切。
在 Java 内部,您可能希望使用 Calendar
而不是 Date
,因为您可以手动指定 TIMEZONE
等,这样您就可以更轻松地显示与您所在时区不同的日期。
关于java - 如何保留日期信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665108/