SpringBoot時(shí)區(qū)問題解決以及徹底解決時(shí)差問題
第一步:確認(rèn)docker時(shí)區(qū)
①進(jìn)入容器中
docker exec -it 容器name bash
②查看容器時(shí)區(qū):
date

③如果不是CST,則需要修改時(shí)區(qū)
方式一、在啟動(dòng)容器的時(shí)候指定正確的時(shí)區(qū)。
在啟動(dòng)的時(shí)候多一個(gè)參數(shù):-e TZ="Asia/Shanghai"
docker run -e TZ="Asia/Shanghai" -d -p 80:80 --name nginx nginx
方式二、如果是正在運(yùn)行中的容器。
進(jìn)入容器
docker exec -it 容器名/容器id bash
修改時(shí)區(qū)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
退出
exit
重啟容器
docker restart 容器名/容器id

方式三:直接在容器里面執(zhí)行即可。(博主沒測(cè)試過)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
第二步確認(rèn)數(shù)據(jù)庫(kù)時(shí)區(qū)
①查看數(shù)據(jù)庫(kù)時(shí)區(qū)
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
②修改數(shù)據(jù)庫(kù)時(shí)區(qū)
如果顯示的是08:00:00則是cst時(shí)區(qū)。
如果不是cst時(shí)區(qū),則執(zhí)行Sql:
set global time_zone = '+8:00'; ##修改mysql全局時(shí)區(qū)為北京時(shí)間,即我們所在的東8區(qū) set time_zone = '+8:00'; ##修改當(dāng)前會(huì)話時(shí)區(qū) flush privileges; #立即生效
第三步確認(rèn)數(shù)據(jù)庫(kù)連接版本是否是6及版本以上
如果是6及以上版本,則數(shù)據(jù)連接需要加上時(shí)區(qū)
jdbc:mysql://192.168.1.54:3306/......&serverTimezone=Asia/Shanghai
第四步:確認(rèn)SpringBoot的時(shí)區(qū)
如果不是cst時(shí)區(qū),則在啟動(dòng)文件中加上:
@SpringBootApplication
public class ApplyPartyApplication {
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
SpringApplication.run(ApplyPartyApplication.class, args);
}
}第五步:確認(rèn)json化輸出前端的時(shí)區(qū)
此時(shí)數(shù)據(jù)庫(kù)時(shí)區(qū)、容器時(shí)區(qū)、springboot時(shí)區(qū)都是CST,輸出的時(shí)間還是可能差8小時(shí),這因?yàn)镈ate進(jìn)行json的時(shí)候還存一個(gè)時(shí)區(qū),而springboot默認(rèn)json工具是jackson,采用的是UTC時(shí)區(qū)。需要一下配置。注意:如果項(xiàng)目WebMvcConfig采用的是繼承WebMvcConfigurationSupport,而不是實(shí)現(xiàn)WebMvcConfigurer接口的話,下面的配置會(huì)不生效。
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
總結(jié)
到此這篇關(guān)于SpringBoot時(shí)區(qū)問題解決以及徹底解決時(shí)差問題的文章就介紹到這了,更多相關(guān)SpringBoot時(shí)區(qū)問題解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 深入詳解SpringBoot中時(shí)區(qū)問題解決與配置方案
- springboot項(xiàng)目如何設(shè)置時(shí)區(qū)
- 如何解決springboot數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)的時(shí)區(qū)差異問題
- SpringBoot如何根據(jù)用戶系統(tǒng)時(shí)區(qū)動(dòng)態(tài)展示時(shí)間
- springboot如何統(tǒng)一設(shè)置時(shí)區(qū)
- SpringBoot中?Jackson?日期的時(shí)區(qū)和日期格式問題解決
- SpringBoot:JPA + AuditingEntityListener時(shí)區(qū)設(shè)置方式
- 關(guān)于SpringBoot mysql數(shù)據(jù)庫(kù)時(shí)區(qū)問題
- SpringBoot時(shí)區(qū)設(shè)置的幾個(gè)方面小結(jié)
相關(guān)文章
Spring Data JPA調(diào)用存儲(chǔ)過程實(shí)例代碼
本篇文章主要介紹了Spring Data JPA調(diào)用存儲(chǔ)過程實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
maven setting多倉(cāng)庫(kù)配置方式
這篇文章主要介紹了maven setting多倉(cāng)庫(kù)配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
MultipartResolver實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了MultipartResolver實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Java中-Xms和-Xmx參數(shù)的使用與默認(rèn)內(nèi)存設(shè)置
在 Java 程序運(yùn)行時(shí),內(nèi)存的管理是影響程序性能的關(guān)鍵因素之一,Java 程序使用的內(nèi)存主要由兩部分組成:堆內(nèi)存和棧內(nèi)存,Java 提供了多個(gè)參數(shù)來(lái)控制堆內(nèi)存的大小,其中最常用的參數(shù)是 -Xms 和 -Xmx,本文將詳細(xì)介紹這些參數(shù),需要的朋友可以參考下2024-11-11
Windows同時(shí)配置兩個(gè)jdk環(huán)境變量的操作步驟
Java Development Kit (JDK) 是開發(fā)Java應(yīng)用程序的基礎(chǔ),包含了編譯器、調(diào)試器以及其他必要的工具,本指南將一步步指導(dǎo)您完成在Windows操作系統(tǒng)上同時(shí)配置兩個(gè)jdk環(huán)境變量的操作步驟,需要的朋友可以參考下2024-09-09
SpringBoot與其他框架集成時(shí)的版本沖突問題排查與解決全流程
解決 Spring Boot 與其他框架集成的版本沖突,核心思路是利用 Spring Boot 的版本仲裁機(jī)制鎖定依賴版本,顯式控制沖突依賴,排查沖突根源,以下是具體步驟、方法和實(shí)戰(zhàn)案例,覆蓋從預(yù)防到排查再到解決的全流程,需要的朋友可以參考下2025-11-11
引入SpringCloud-gateway報(bào)錯(cuò)的解決方案
這篇文章主要介紹了引入SpringCloud-gateway報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07

