如何解決springboot數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)的時(shí)區(qū)差異問(wèn)題
springboot數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)的時(shí)區(qū)差異
最近項(xiàng)目中使用到多數(shù)據(jù)源將MySQL庫(kù)中的數(shù)據(jù)遷移到mongo庫(kù)中,發(fā)現(xiàn)取出后的數(shù)據(jù)與原數(shù)據(jù)時(shí)間上會(huì)出現(xiàn)8小時(shí)的相差,
最后度娘后終于解決問(wèn)題,記錄一下:
網(wǎng)上看到了兩種比較實(shí)用的方法,因?yàn)槭褂玫膕pringboot原因,所以我這里使用的是在配置文件application.yml中進(jìn)行修改,另外其他方法網(wǎng)上都可以搜到,
1.在連接數(shù)據(jù)庫(kù)的配置上我們添加一項(xiàng)
&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: ********
原格式應(yīng)該是這樣的:
&serverTimezone=GMT+8 這里使用%2b替換 + 號(hào)
2.直接在boot配置文件中增加jackson配置
#在application.yml中增加配置 spring: ? ? jackson: ? ? ? ? time-zone: GMT+8
這樣就可以成功將時(shí)間修改成功了,還有其他方法,大家可以查閱哦
springboot new Date()時(shí)區(qū)差8小時(shí)
1 在k8s環(huán)境中,在代碼中比較時(shí)間。new Date() 下相差8小時(shí)
檢查宿主機(jī) 時(shí)區(qū)是 cst時(shí)區(qū)
用java代碼寫出controller時(shí)區(qū)發(fā)現(xiàn)是GMT
代碼如下:
Calendar calendar = Calendar.getInstance(); ? ? ?
? ? ? ? System.out.println("目前時(shí)間:" + calendar.getTime());
? ? ? ? System.out.println("Calendar時(shí)區(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("默認(rèn)時(shí)區(qū):" + TimeZone.getDefault().getID());輸出時(shí)區(qū)是 GMT 跟宿主機(jī)還不一樣,搞不定運(yùn)維,自己搞把
看來(lái)還是時(shí)區(qū)搞的鬼-
1、數(shù)據(jù)庫(kù)鏈接db添加參數(shù) serverTimezone=Asia/Shanghai
2、springboot啟動(dòng)腳本添加 -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”)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 深入詳解SpringBoot中時(shí)區(qū)問(wèn)題解決與配置方案
- SpringBoot時(shí)區(qū)問(wèn)題解決以及徹底解決時(shí)差問(wèn)題
- springboot項(xiàng)目如何設(shè)置時(shí)區(qū)
- SpringBoot如何根據(jù)用戶系統(tǒng)時(shí)區(qū)動(dòng)態(tài)展示時(shí)間
- springboot如何統(tǒng)一設(shè)置時(shí)區(qū)
- SpringBoot中?Jackson?日期的時(shí)區(qū)和日期格式問(wèn)題解決
- SpringBoot:JPA + AuditingEntityListener時(shí)區(qū)設(shè)置方式
- 關(guān)于SpringBoot mysql數(shù)據(jù)庫(kù)時(shí)區(qū)問(wèn)題
- SpringBoot時(shí)區(qū)設(shè)置的幾個(gè)方面小結(jié)
相關(guān)文章
SpringBoot項(xiàng)目接收前端參數(shù)的11種方式
在前后端項(xiàng)目交互中,前端傳遞的數(shù)據(jù)可以通過(guò)HTTP請(qǐng)求發(fā)送到后端, 后端在Spring Boot中如何接收各種復(fù)雜的前端數(shù)據(jù)呢?這篇文章總結(jié)了11種在Spring Boot中接收前端數(shù)據(jù)的方式,需要的朋友可以參考下2024-12-12
java8 Stream list to Map key 重復(fù) value合并到Collectio的操作
這篇文章主要介紹了java8 Stream list to Map key 重復(fù) value合并到Collectio的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java Synchronized鎖升級(jí)原理及過(guò)程剖析
這篇文章主要為大家詳細(xì)介紹一下Java中Synchronized鎖升級(jí)原理及過(guò)程,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)2022-08-08
DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說(shuō)明
這篇文章主要介紹了DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
SpringCloud?Hystrix?斷路器的實(shí)現(xiàn)
本文主要介紹了SpringCloud?Hystrix?斷路器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Spring Cloud之注冊(cè)中心Nacos的使用詳解
本文介紹SpringCloud Alibaba中的Nacos組件,對(duì)比了Nacos與Eureka的區(qū)別,展示了如何在項(xiàng)目中引入SpringCloud Alibaba和Nacos,并配置負(fù)載均衡,通過(guò)實(shí)際操作,驗(yàn)證了服務(wù)注冊(cè)和負(fù)載均衡的功能,感興趣的朋友一起看看吧2025-03-03
java簡(jiǎn)單解析xls文件的方法示例【讀取和寫入】
這篇文章主要介紹了java簡(jiǎn)單解析xls文件的方法,結(jié)合實(shí)例形式分析了java針對(duì)xls文件的讀取和寫入相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-06-06
volatile與happens-before的關(guān)系與內(nèi)存一致性錯(cuò)誤
本文講了Java并發(fā)編程中volatile變量、happens-before與內(nèi)存一致性錯(cuò)誤,下面來(lái)和小編一起學(xué)習(xí)下如何解決2019-05-05

