SpringBoot實(shí)現(xiàn)設(shè)置全局和局部時(shí)間格式化
前言
在開(kāi)發(fā)中,我們進(jìn)行數(shù)據(jù)庫(kù)查詢?nèi)掌陬愋偷臅r(shí)候,往往不是我們想要的時(shí)間格式,比如下面的情況:
我數(shù)據(jù)庫(kù)里面把這些日期相關(guān)的字段都設(shè)置為datatime格式了:
數(shù)據(jù)類型如下:
實(shí)體是這么配置的:
那么默認(rèn)查詢出來(lái)的結(jié)果就是這樣的:
救命啊,這什么格式啊,完全不是我想要的年月日時(shí)分秒。
其實(shí)想解決這種問(wèn)題也很簡(jiǎn)單,無(wú)非就是時(shí)間格式不對(duì)嗎,下面通過(guò)全局設(shè)置和局部設(shè)置兩個(gè)方面解決這種問(wèn)題
解決問(wèn)題
1 全局設(shè)置(推薦)
一般來(lái)說(shuō),為了方便和統(tǒng)一,我們可以設(shè)置全局處理日期格式化,在配置文件中進(jìn)行配置
想到application配置文件有properties和yaml兩種格式,我分別給大家準(zhǔn)備好了不同格式需要的代碼。
properties格式
# 設(shè)置全局的日期格式為年月日時(shí)分秒 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # 世界標(biāo)準(zhǔn)時(shí)間,為了方式時(shí)差,需要+8小時(shí) spring.jackson.time-zone=GMT+8
yaml格式
當(dāng)然,上面是properties格式,如果你用的是yaml格式,那么就可以使用下面的配置:
spring jackson: date-format: yyyy-MM-dd HH:mm:ss #設(shè)置全局的日期格式為年月日時(shí)分秒 time-zone: GMT+8 #世界標(biāo)準(zhǔn)時(shí)間,為了方式時(shí)差,需要+8小時(shí)
加上這個(gè)配置項(xiàng)之后就可以重啟服務(wù)了,再次訪問(wèn)接口:
可以發(fā)現(xiàn)是我們想要的時(shí)間格式了,但是查出來(lái)的時(shí)間比數(shù)據(jù)庫(kù)多了8小時(shí)
這就是加上時(shí)區(qū)引起的,如果加上時(shí)區(qū)配置項(xiàng),就是會(huì)在原有的時(shí)間上+8小時(shí),所以說(shuō)這個(gè)時(shí)區(qū)配置項(xiàng)看個(gè)人需求,可以配置也可以不配置
2 局部設(shè)置(不推薦)
雖然全局配置很香,但是有的時(shí)候我們不能強(qiáng)制的讓全局保持統(tǒng)一格式,只對(duì)個(gè)別的進(jìn)行時(shí)間處理
那這個(gè)時(shí)候,局部設(shè)置的作用就體現(xiàn)出來(lái)了,為了方便演示,我把全局設(shè)置給注釋掉:
引入pom
局部設(shè)置需要使用fastjson依賴,所以需要下下載依賴
<!--fastjson--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency>
加入注解
在需要進(jìn)行時(shí)間格式化的字段上加入注解:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
它有兩個(gè)參數(shù):
1:pattern:時(shí)間格式
2:timezone:時(shí)區(qū)
原理和全局設(shè)置的兩個(gè)參數(shù)是一樣的
這里我估計(jì)拿出一個(gè)加了注解,一個(gè)沒(méi)加注解的時(shí)間屬性進(jìn)行比較:
重啟項(xiàng)目,測(cè)試接口,對(duì)比兩個(gè)日期格式
當(dāng)然,和全局配置一樣,注解里面的參數(shù)也是根據(jù)自己的需求靈活選擇的:
比如我這里不想要時(shí)區(qū)了,并且想要年月日的格式,那就直接改:
結(jié)果當(dāng)然是你怎么配置就是什么樣的啦:
總結(jié)
以上就是在SpringBoot項(xiàng)目設(shè)置全局和局部時(shí)間格式化的兩種方式了,大家根據(jù)自己的需求靈活選擇即可。更多相關(guān)SpringBoot 時(shí)間格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring mvc實(shí)現(xiàn)文件上傳與下載功能
這篇文章主要為大家詳細(xì)介紹了spring mvc實(shí)現(xiàn)文件上傳與下載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Elasticsearch查詢及聚合類DSL語(yǔ)句寶典示例詳解
這篇文章主要為大家介紹了Elasticsearch查詢及聚合類DSL語(yǔ)句寶典示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01如何設(shè)置Spring Boot測(cè)試時(shí)的日志級(jí)別
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。下面我們來(lái)一起學(xué)習(xí)一下吧2019-06-06Java如何把數(shù)組轉(zhuǎn)換為ArrayList
這篇文章主要介紹了Java如何把數(shù)組轉(zhuǎn)換為ArrayList,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系詳解
在本篇文章里小編給大家整理的是關(guān)于spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。2019-09-09