日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

SpringBoot時區(qū)問題解決,徹底解決時差問題

作者:蒼穹之躍 更新時間: 2022-01-23 編程語言

第一步:確認(rèn)docker時區(qū)

進(jìn)入容器中

docker exec -it 容器name bash

查看容器時區(qū):

date

?第二步確認(rèn)數(shù)據(jù)庫時區(qū)

SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

如果顯示的是08:00:00則是cst時區(qū)。

如果不是cst時區(qū),則執(zhí)行Sql:

set global time_zone = '+8:00';  ##修改mysql全局時區(qū)為北京時間,即我們所在的東8區(qū)
set time_zone = '+8:00';  ##修改當(dāng)前會話時區(qū)
flush privileges;  #立即生效

第三步確認(rèn)數(shù)據(jù)庫連接版本是否是6及版本以上

如果是6及以上版本,則數(shù)據(jù)連接需要加上時區(qū)

jdbc:mysql://192.168.1.54:3306/......&serverTimezone=Asia/Shanghai

第四步:確認(rèn)SpringBoot的時區(qū)

如果不是cst時區(qū),則在啟動文件中加上:

@SpringBootApplication
public class ApplyPartyApplication {
    public static void main(String[] args) {
        TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
        SpringApplication.run(ApplyPartyApplication.class, args);
    }
}

第五步:確認(rèn)json化輸出前端的時區(qū)

此時數(shù)據(jù)庫時區(qū)、容器時區(qū)、springboot時區(qū)都是CST,輸出的時間還是可能差8小時,這因?yàn)镈ate進(jìn)行json的時候還存一個時區(qū),而springboot默認(rèn)json工具是jackson,采用的是UTC時區(qū)。需要一下配置。

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

原文鏈接:https://blog.csdn.net/wenxingchen/article/details/119795111

欄目分類
最近更新