Mysql保存日期提前1天,日期是从java应用程序的输入提供的

问题描述 投票:1回答:2

我在我当前的项目(生产)中使用以下规格

  1. 操作系统:CentOS 7
  2. 数据库:MySql
  3. Java 8
  4. 过冬
  5. tomcat服务器8

数据库位于与应用程序服务器不同的服务器中,但两者都位于同一LAN中。

mysql表中的数据类型是:date用于存储日期,datetime用于保存日期和时间。

问题是mysql在比applcation提供的日期提前1天保存的每个日期。我到目前为止尝试过以下但仍然没有运气:

  1. 我已将应用程序和数据库服务器的时区设置为Asia / Dhaka,并从我的java应用程序中检查了这一点。
  2. 我还在tomcat服务器(setenv.sh)文件中设置了时区。
  3. 我还在log4j属性文件中通过TRACE检查了hibernate生成的sql,其中日期也与输入日期相同。

我错过了什么?谁有人建议?

java mysql hibernate tomcat8
2个回答
0
投票

感谢所有人分享您对此问题的体验。

最后,我通过在我的java Web应用程序的serverTimezone中更改mysql连接字符串的dispatcher-servlet属性来解决它。

<property name="url" value="jdbc:mysql://x.x.x..x:3306/dbname?characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=Asia/Dhaka" /> 

0
投票

也许你可以尝试改变serverTimezone

serverTimezone=GMT%2B8
© www.soinside.com 2019 - 2024. All rights reserved.