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)文章
親手教你IDEA2020.3創(chuàng)建Javaweb項目的步驟詳解
這篇文章主要介紹了IDEA2020.3創(chuàng)建Javaweb項目的步驟詳解,本文是小編手把手教你,通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-03-03
Java實戰(zhàn)之電影在線觀看系統(tǒng)的實現(xiàn)
這篇文章主要介紹了如何利用Java實現(xiàn)電影在線觀看系統(tǒng),文中用到的技術(shù)有:JSP、Spring、SpringMVC、MyBatis等,感興趣的可以了解一下2022-04-04
SpringBoot Application注解原理及代碼詳解
這篇文章主要介紹了SpringBoot Application注解原理及代碼詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
Java 遞歸查詢部門樹形結(jié)構(gòu)數(shù)據(jù)的實踐
本文主要介紹了Java 遞歸查詢部門樹形結(jié)構(gòu)數(shù)據(jù)的實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
深入Java Robot實現(xiàn)控制鼠標(biāo)和鍵盤的方法詳解
本篇文章是對Java中用Robot實現(xiàn)控制鼠標(biāo)和鍵盤的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

