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