[MySQL]关于在更新JDK版本后插入mysql时间与本地时间相差13或14小时的问题

 

 

现象:插入数据库中的时间与本地时间(中国标准时间UTC+08:00)相差13或14个小时。

 

解决方法

在jdbc.url中加入serverTimezone=CTT 或serverTimezone=Asia/Shanghai 或serverTimezone=GMT%2B8 

 

原因:

名为 CST 的时区是一个很混乱的时区,有四种含义:

  • 美国中部时间 Central Standard Time (USA) UTC-06:00 or UTC-05:00
  • 澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30
  • 中国标准时 China Standard Time UTC+08:00
  • 古巴标准时 Cuba Standard Time UTC-04:00

美国从“3月11日”至“11月7日”实行夏令时,美国中部时间改为 UTC-05:00

 

在mysql中CST代表的是中国标准时间,即UTC+08:00;

在高版本jdk中CST不再表示中国标准时间,仅代表美国中部时间;

 

 

在线上环境MySQL数据库中时区的配置如下:

 

因此在更新了高版本的JDK之后,java读取的时区为CST会被认为是美国中部时间,进而导致实际时间与服务器本地时间相差13或14小时的。

posted @   Angel挤一挤  阅读(255)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
历史上的今天:
2021-08-30 【arthas】 arthas命令记录
2018-08-30 【redis】spring boot中 使用redis hash 操作 --- 之 使用redis实现库存的并发有序操作
2018-08-30 【多线程】java多线程Completablefuture 详解【在spring cloud微服务之间调用,防止接口超时的应用】【未完成】
点击右上角即可分享
微信分享提示