SpringBoot實現(xiàn)設(shè)置全局和局部時間格式化
前言
在開發(fā)中,我們進行數(shù)據(jù)庫查詢?nèi)掌陬愋偷臅r候,往往不是我們想要的時間格式,比如下面的情況:
我數(shù)據(jù)庫里面把這些日期相關(guān)的字段都設(shè)置為datatime格式了:

數(shù)據(jù)類型如下:

實體是這么配置的:

那么默認查詢出來的結(jié)果就是這樣的:

救命啊,這什么格式啊,完全不是我想要的年月日時分秒。
其實想解決這種問題也很簡單,無非就是時間格式不對嗎,下面通過全局設(shè)置和局部設(shè)置兩個方面解決這種問題
解決問題
1 全局設(shè)置(推薦)
一般來說,為了方便和統(tǒng)一,我們可以設(shè)置全局處理日期格式化,在配置文件中進行配置
想到application配置文件有properties和yaml兩種格式,我分別給大家準備好了不同格式需要的代碼。
properties格式
# 設(shè)置全局的日期格式為年月日時分秒 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # 世界標準時間,為了方式時差,需要+8小時 spring.jackson.time-zone=GMT+8

yaml格式
當(dāng)然,上面是properties格式,如果你用的是yaml格式,那么就可以使用下面的配置:
spring
jackson:
date-format: yyyy-MM-dd HH:mm:ss #設(shè)置全局的日期格式為年月日時分秒
time-zone: GMT+8 #世界標準時間,為了方式時差,需要+8小時
加上這個配置項之后就可以重啟服務(wù)了,再次訪問接口:
可以發(fā)現(xiàn)是我們想要的時間格式了,但是查出來的時間比數(shù)據(jù)庫多了8小時
這就是加上時區(qū)引起的,如果加上時區(qū)配置項,就是會在原有的時間上+8小時,所以說這個時區(qū)配置項看個人需求,可以配置也可以不配置

2 局部設(shè)置(不推薦)
雖然全局配置很香,但是有的時候我們不能強制的讓全局保持統(tǒng)一格式,只對個別的進行時間處理
那這個時候,局部設(shè)置的作用就體現(xiàn)出來了,為了方便演示,我把全局設(shè)置給注釋掉:

引入pom
局部設(shè)置需要使用fastjson依賴,所以需要下下載依賴
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
加入注解
在需要進行時間格式化的字段上加入注解:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
它有兩個參數(shù):
1:pattern:時間格式
2:timezone:時區(qū)
原理和全局設(shè)置的兩個參數(shù)是一樣的
這里我估計拿出一個加了注解,一個沒加注解的時間屬性進行比較:

重啟項目,測試接口,對比兩個日期格式

當(dāng)然,和全局配置一樣,注解里面的參數(shù)也是根據(jù)自己的需求靈活選擇的:
比如我這里不想要時區(qū)了,并且想要年月日的格式,那就直接改:

結(jié)果當(dāng)然是你怎么配置就是什么樣的啦:

總結(jié)
以上就是在SpringBoot項目設(shè)置全局和局部時間格式化的兩種方式了,大家根據(jù)自己的需求靈活選擇即可。更多相關(guān)SpringBoot 時間格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Elasticsearch查詢及聚合類DSL語句寶典示例詳解
這篇文章主要為大家介紹了Elasticsearch查詢及聚合類DSL語句寶典示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
Java如何把數(shù)組轉(zhuǎn)換為ArrayList
這篇文章主要介紹了Java如何把數(shù)組轉(zhuǎn)換為ArrayList,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系詳解
在本篇文章里小編給大家整理的是關(guān)于spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系,對此有興趣的朋友們可以學(xué)習(xí)下。2019-09-09

