我在这里看到了一些相关的问题(比如这个,当然还有这个)......基本上,我想要的是将日期时间存储为UTC,并让应用程序用户选择他想要显示日期的时区-time in。
由于日期时间字段似乎受到底层 JDBC 驱动程序的影响,我想知道这是否是一种可以接受的存储 UTC 日期时间的方法:
- 将 MySQL 和应用服务器机器都设置为 UTC 时区(无需分开)
- MySQL 和 JVM 都应该选择底层系统时间设置(如果没有另外说明)
- 在 MySQL 端使用
DATETIME
表列 java.util.Date
用作 Hibernate 端的对应映射(我想java.sql.Timestamp
也可以使用)- 让应用程序担心解释日期时间字段 - 即让用户选择首选时区
这个可以吗?
编辑
澄清 - 在这里我的意思是指严格在服务器上创建的时间戳(例如记录创建的日期时间)。因此应用程序服务器实例化Date
对象(new Date() 等于服务器上的当前日期时间,这实际上与时区无关)。
现在,如果客户端用户想要提供一些日期以用于搜索/过滤目的,那么这里就是从客户端本地时间到 UTC 的转换应该发生的地方,恕我直言......