遇到一個問題:項目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小時