如何解決springboot數據庫查詢時出現的時區(qū)差異問題
springboot數據庫查詢時出現的時區(qū)差異
最近項目中使用到多數據源將MySQL庫中的數據遷移到mongo庫中,發(fā)現取出后的數據與原數據時間上會出現8小時的相差,
最后度娘后終于解決問題,記錄一下:
網上看到了兩種比較實用的方法,因為使用的springboot原因,所以我這里使用的是在配置文件application.yml中進行修改,另外其他方法網上都可以搜到,
1.在連接數據庫的配置上我們添加一項
&serverTimezone=GMT%2b8
?primary: ? ? ? jdbc-url: jdbc:mysql://******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8 ? ? ? username: **** ? ? ? password: ***** ? ? secondary: ? ? ? jdbc-url: jdbc:mysql://*******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8 ? ? ? username: ***** ? ? ? password: ********
原格式應該是這樣的:
&serverTimezone=GMT+8 這里使用%2b替換 + 號
2.直接在boot配置文件中增加jackson配置
#在application.yml中增加配置 spring: ? ? jackson: ? ? ? ? time-zone: GMT+8
這樣就可以成功將時間修改成功了,還有其他方法,大家可以查閱哦
springboot new Date()時區(qū)差8小時
1 在k8s環(huán)境中,在代碼中比較時間。new Date() 下相差8小時
檢查宿主機 時區(qū)是 cst時區(qū)
用java代碼寫出controller時區(qū)發(fā)現是GMT
代碼如下:
Calendar calendar = Calendar.getInstance(); ? ? ?
? ? ? ? System.out.println("目前時間:" + calendar.getTime());
? ? ? ? System.out.println("Calendar時區(qū)::" + calendar.getTimeZone().getID());
? ? ? ? System.out.println("user.timezone:" + System.getProperty("user.timezone"));
? ? ? ? System.out.println("user.country:" + System.getProperty("user.country"));
? ? ? ? System.out.println("默認時區(qū):" + TimeZone.getDefault().getID());輸出時區(qū)是 GMT 跟宿主機還不一樣,搞不定運維,自己搞把
看來還是時區(qū)搞的鬼-
1、數據庫鏈接db添加參數 serverTimezone=Asia/Shanghai
2、springboot啟動腳本添加 -Duser.timezone=GMT+08
3、jackson 全局配置
spring.jackson.date-format: yyyy-MM-dd HH:mm:ss spring.jackson.time-zone: GMT+8
4、jackson 注解
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot+thymeleaf 文件上傳功能的實現代碼
這篇文章主要介紹了springboot+thymeleaf 文件上傳功能的實現代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
java多線程CyclicBarrier的使用案例,讓線程起步走
這篇文章主要介紹了java多線程CyclicBarrier的使用案例,讓線程起步走!具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案
本篇文章主要介紹了詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
使用Spring?Boot如何限制在一分鐘內某個IP只能訪問10次
有些時候,為了防止我們上線的網站被攻擊,或者被刷取流量,我們會對某一個ip進行限制處理,這篇文章,我們將通過Spring?Boot編寫一個小案例,來實現在一分鐘內同一個IP只能訪問10次,感興趣的朋友一起看看吧2023-10-10
jxls2.4.5如何動態(tài)導出excel表頭與數據
這篇文章主要介紹了jxls2.4.5如何動態(tài)導出excel表頭與數據問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

