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

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

方式三:直接在容器里面執(zhí)行即可。(博主沒測試過)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
第二步確認數(shù)據(jù)庫時區(qū)
①查看數(shù)據(jù)庫時區(qū)
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
②修改數(shù)據(jù)庫時區(qū)
如果顯示的是08:00:00則是cst時區(qū)。
如果不是cst時區(qū),則執(zhí)行Sql:
set global time_zone = '+8:00'; ##修改mysql全局時區(qū)為北京時間,即我們所在的東8區(qū) set time_zone = '+8:00'; ##修改當前會話時區(qū) flush privileges; #立即生效
第三步確認數(shù)據(jù)庫連接版本是否是6及版本以上
如果是6及以上版本,則數(shù)據(jù)連接需要加上時區(qū)
jdbc:mysql://192.168.1.54:3306/......&serverTimezone=Asia/Shanghai
第四步:確認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);
}
}第五步:確認json化輸出前端的時區(qū)
此時數(shù)據(jù)庫時區(qū)、容器時區(qū)、springboot時區(qū)都是CST,輸出的時間還是可能差8小時,這因為Date進行json的時候還存一個時區(qū),而springboot默認json工具是jackson,采用的是UTC時區(qū)。需要一下配置。注意:如果項目WebMvcConfig采用的是繼承WebMvcConfigurationSupport,而不是實現(xiàn)WebMvcConfigurer接口的話,下面的配置會不生效。
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")
總結
到此這篇關于SpringBoot時區(qū)問題解決以及徹底解決時差問題的文章就介紹到這了,更多相關SpringBoot時區(qū)問題解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
聊聊ResourceBundle和properties讀取配置文件的區(qū)別
這篇文章主要介紹了ResourceBundle和properties讀取配置文件的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot定制三種錯誤頁面及錯誤數(shù)據(jù)方法示例
Spring Boot提供的默認異常處理機制通常并不一定適合我們實際的業(yè)務場景,因此,我們通常會根據(jù)自身的需要對Spring Boot全局異常進行統(tǒng)一定制,例如定制錯誤頁面,定制錯誤數(shù)據(jù)等。本文主要介紹了SpringBoot三種自定義錯誤頁面的實現(xiàn),快來學習吧2021-12-12
BeanUtils.copyProperties()參數(shù)的賦值順序說明
這篇文章主要介紹了BeanUtils.copyProperties()參數(shù)的賦值順序說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
springboot統(tǒng)一返回json數(shù)據(jù)格式并配置系統(tǒng)異常攔截方式
這篇文章主要介紹了springboot統(tǒng)一返回json數(shù)據(jù)格式并配置系統(tǒng)異常攔截方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
如何解決@PutMapping或@PostMapping接收String類型參數(shù)多兩個“引號問題
這篇文章主要介紹了如何解決@PutMapping或@PostMapping接收String類型參數(shù)多兩個“引號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

