SpringBoot項目中Date類型數(shù)據(jù)在接口返回的時間不正確的問題解決
問題描述
在SpringBoot項目中,接口難免會使用到日期類型,我的數(shù)據(jù)使用的是mysql,表中的日期字段類型為 datetime ,java實體類中對應的類型為Date類。結果發(fā)現(xiàn)返回給前端的時間不對。
從圖片可以看出:
1、時間為 00:00:00 ,變成了前一天的 04:00:00;
2、時間為16:53:40 , 變成了當天的 08:53:40;
原因分析:
經過分析,貌似時間如果是12小時制的話,就與正確的時間相差8小時了,這剛好也是時區(qū)差。
所以這里有兩個坑:1、在yaml配置文件中,使用了spring.jackson.data-format 來進行日期類型的格式化;
# 這是一開始的寫法,不小心把 小時 寫成了hh,這是12小時制 spring: jackson: date-format: yyyy-MM-dd hh:mm:ss
2、就是時區(qū)問題,經過查閱自動配置類JacksonAutoConfiguration發(fā)現(xiàn),如果沒有配置時區(qū)的話,不會給時區(qū)賦值,默認就是null。
解決方案:
解決時間制以及時區(qū)問題,只需要對配置文件重新配置就可以解決問題。
#正確配置如下 spring: jackson: #24小時制 date-format: yyyy-MM-dd HH:mm:ss #設置東八時區(qū) time-zone: GMT+8
配置完成后重啟項目,調用接口發(fā)現(xiàn),時間已經可以正確獲取了!
到此這篇關于SpringBoot項目中Date類型數(shù)據(jù)在接口返回的時間不正確的問題解決的文章就介紹到這了,更多相關SpringBoot Date接口返回內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot詳細分析自動裝配原理并實現(xiàn)starter
相對于傳統(tǒng)意義上的Spring項目,SpringBoot具有開箱即用,簡化配置,內置Tomcat等等等等一系列的特點。在這些特點中,最重要的兩條就是約定優(yōu)于配置和自動裝配2022-07-07spring boot高并發(fā)下耗時操作的實現(xiàn)方法
這篇文章主要給大家介紹了關于spring boot高并發(fā)下耗時操作的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-11-11Java Mybatis框架多表操作與注解開發(fā)詳解分析
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數(shù)和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄2021-10-10java中的JsonSerializer用法,前后端單位轉換必備
這篇文章主要介紹了java中的JsonSerializer用法,前后端單位轉換必備!具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10SpringBoot3實現(xiàn)優(yōu)雅停機的完整流程
在現(xiàn)代微服務架構中,優(yōu)雅停機(Graceful Shutdown)是一項重要功能,可以確保服務在關閉時處理完所有當前請求,避免突然終止連接或丟失數(shù)據(jù),Spring Boot 3 提供了對優(yōu)雅停機的內置支持,本文給大家介紹了SpringBoot3怎樣優(yōu)雅停機,需要的朋友可以參考下2024-10-10