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

學無先后,達者為師

網站首頁 編程語言 正文

SpringBoot時區問題解決,徹底解決時差問題

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

第一步:確認docker時區

進入容器中

docker exec -it 容器name bash

查看容器時區:

date

?第二步確認數據庫時區

SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

如果顯示的是08:00:00則是cst時區。

如果不是cst時區,則執行Sql:

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

第三步確認數據庫連接版本是否是6及版本以上

如果是6及以上版本,則數據連接需要加上時區

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

第四步:確認SpringBoot的時區

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

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

第五步:確認json化輸出前端的時區

此時數據庫時區、容器時區、springboot時區都是CST,輸出的時間還是可能差8小時,這因為Date進行json的時候還存一個時區,而springboot默認json工具是jackson,采用的是UTC時區。需要一下配置。

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

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

欄目分類
最近更新