解決 JPA 插入 MySQL 時間與實際時間差 13 個小時問題


問題描述

公司使用的阿里雲數據庫服務器,插入時間與實際時間差 13 個小時

執行 show variables like "%time_zone%"; 結果如下:

Variable_name Value
system_time_zone CST
time_zone SYSTEM

原因

CST 的時區是一個很混亂的時區,在與 MySQL 協商會話時區時,Java 會誤以為是 CST -0500,而非 CST +0800,詳見 一次 JDBC 與 MySQL 因 “CST” 時區協商誤解導致時間差了 14 或 13 小時的排錯經歷

解決方法

因此數據庫為正式環境數據庫,亦有其他程序正在使用,故在數據庫連接字符串添加 &serverTimezone=GMT%2b8

另外一種方法需要修改 MySQL 配置:

[mysqld]
default-time-zone = '+08:00'

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM