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'; ##修改當(dāng)前會話時區(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")
總結(jié)
到此這篇關(guān)于SpringBoot時區(qū)問題解決以及徹底解決時差問題的文章就介紹到這了,更多相關(guān)SpringBoot時區(qū)問題解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
聊聊ResourceBundle和properties讀取配置文件的區(qū)別
這篇文章主要介紹了ResourceBundle和properties讀取配置文件的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot定制三種錯誤頁面及錯誤數(shù)據(jù)方法示例
Spring Boot提供的默認異常處理機制通常并不一定適合我們實際的業(yè)務(wù)場景,因此,我們通常會根據(jù)自身的需要對Spring Boot全局異常進行統(tǒng)一定制,例如定制錯誤頁面,定制錯誤數(shù)據(jù)等。本文主要介紹了SpringBoot三種自定義錯誤頁面的實現(xiàn),快來學(xué)習(xí)吧2021-12-12BeanUtils.copyProperties()參數(shù)的賦值順序說明
這篇文章主要介紹了BeanUtils.copyProperties()參數(shù)的賦值順序說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Spring Boot學(xué)習(xí)入門之AOP處理請求詳解
AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù),下面這篇文章主要給大家介紹了關(guān)于Spring Boot學(xué)習(xí)入門之AOP處理請求的相關(guān)資料,需要的朋友可以參考下。2017-09-09springboot統(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學(xué)習(xí)Java模擬實現(xiàn)百度文檔在線瀏覽
這片文章介紹了如何使用Java模擬實現(xiàn)百度文檔在線瀏覽,文章思路清晰,需要的朋友可以參考下2015-07-07