遇到一個問題:項目jar包掃描後,更新了好多jar包,包括mysql的驅動jar包更新到了8.0版本以上。更新後從mysql中查出的時候,全都比資料庫的時間多13小時,而且這些時間存到資料庫的時間,有些是正确的時間,有時比正确時間少13小時,這樣傳回給前端的時間就不準确,解決這個問題隻要在springboot的資料庫連接配接配置中增加一段配置就能解決問題
spring:
datasource:
url:jdbc:mysql://localhost:3306/mydb3?serverTimezone=GMT%2B8&useSSL=false
這個時區要設定好,不然會出現時差,
如果你設定serverTimezone=UTC,連接配接不報錯,
但是我們在用java代碼插入到資料庫時間的時候卻出現了問題。
比如在java代碼裡面插入的時間為:2018-06-24 17:29:56
但是在資料庫裡面顯示的時間卻為:2018-06-24 09:29:56
有了8個小時的時差
UTC代表的是全球标準時間 ,但是我們使用的時間是北京時區也就是東八區,領先UTC八個小時。
//中原標準時間==東八區時間!=北京當地時間
serverTimezone=GMT%2B8
//或者使用上海時間
serverTimezone=Asia/Shanghai
我不确定為什麼我的時間相差13小時,加上這段設定也能解決問題,應該是之前我既沒有設定UTC,也沒有設定東八區,使用預設的,也許就差了13小時
轉自:原文位址