Java Tomcat应用程序将时间戳保存到错误时区的数据库

Java Tomcat应用程序将时间戳保存到错误时区的数据库,java,mysql,linux,tomcat,timezone,Java,Mysql,Linux,Tomcat,Timezone,在JavaTomcat应用程序中,我使用的是-Duser.timezone=Canada/Central。另外,我将服务器时区设置为加拿大/中央。但是,当我使用LocalDateTime.now()将时间戳保存到数据库时,UTC时间戳将保存到数据库中 有人知道出了什么问题吗 操作系统:亚马逊Linux 数据库:AWS RDS中的Mysql 8 谢谢。我想,我找到了一个优雅的解决方案 在jdbc连接字符串中,添加以下参数: useLegacyDatetimeCode=false&ser

在JavaTomcat应用程序中,我使用的是
-Duser.timezone=Canada/Central
。另外,我将服务器时区设置为
加拿大/中央
。但是,当我使用
LocalDateTime.now()
将时间戳保存到数据库时,UTC时间戳将保存到数据库中

有人知道出了什么问题吗

  • 操作系统:亚马逊Linux
  • 数据库:AWS RDS中的Mysql 8

谢谢。

我想,我找到了一个优雅的解决方案

在jdbc连接字符串中,添加以下参数:

useLegacyDatetimeCode=false&serverTimezone=America/Winnipeg

SQL列类型是时间戳吗?根据MySQL文档,“MySQL将时间戳值从当前时区转换为UTC进行存储,并从UTC转换回当前时区进行检索。[…]只要时区设置保持不变,您将返回与存储相同的值。”是,列类型为TIMESTAMP,因为时区ID
Canada/Central
已弃用。您应该改用
America/Winnipeg
。例如,请参见。@Sadat-您能将插入表中的代码发布到表中,并从表中读取值吗?我基本上想将时间戳存储到数据库中,存储在我配置的时区中,而不是UTC。代码涉及几个模块,我将尝试发布一个总结版本。谢谢