码迷,mamicode.com
首页 > 数据库 > 详细

Spring连接Mysql时遇到的TimeZone的问题

时间:2020-02-13 09:52:44      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:参数   time   oba   central   指定   美国   默认   www   code   

我的Mysql版本是 8.0.18

使用的Driver是 com.mysql.cj.jdbc.Driver

当我们连接时没有指定时区,mysql会使用设置中time_zone所设置的时区,这个值默认是SYSTEM,也就是指向system_time_zone这个变量,在中国,这个值显示是CST

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+

CST可以代表四个时区!!这是一个有歧义的名字!坏就坏在这里了。java会以为这个CST是美国中部时间 (Central Standard Time )。这样就导致了JDBC获取TimeStamp时的时区出错!。

解决方法有两种:

  1. 连接时指定时区,加参数serverTimezone=Aisa/Shanghai
  2. 改mysql变量,从SYSTEM改为+08:00,方法是set global time_zone = ‘+08:00‘;

相关文章: https://www.cnblogs.com/bgo-tech/p/6929701.html

Spring连接Mysql时遇到的TimeZone的问题

标签:参数   time   oba   central   指定   美国   默认   www   code   

原文地址:https://www.cnblogs.com/modyuan/p/12302216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!