【发布时间】:2019-08-26 17:51:14
【问题描述】:
在 Java Tomcat 应用程序中,我使用的是-Duser.timezone=Canada/Central。另外,我将服务器时区设置为Canada/Central。但是,当我使用LocalDateTime.now() 将时间戳保存到数据库时,UTC 时间戳将保存到数据库中。
有人知道出了什么问题吗?
- 操作系统:亚马逊 Linux
- 数据库:AWS RDS 中的 Mysql 8
谢谢。
【问题讨论】:
-
SQL列类型是TIMESTAMP吗?根据 MySQL 文档“MySQL 将 TIMESTAMP 值从当前时区转换为 UTC 进行存储,然后从 UTC 转换回当前时区进行检索。[...] 只要时区设置保持不变,您就可以返回您存储的值相同。”
-
是的,列类型是TIMESTAMP
-
顺便说一句,不推荐使用时区 ID
Canada/Central。您应该改用America/Winnipeg。参见例如List of tz database time zones。 -
@Sadat - 你能贴出插入表格的代码,并从表格中读取值
-
我基本上想在我配置的时区而不是 UTC 中将时间戳存储到数据库中。该代码涉及几个模块,我将尝试发布一个总结版本。谢谢。
标签: java mysql linux tomcat timezone