[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小时的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 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微服务之间调用,防止接口超时的应用】【未完成】