您好,登錄后才能下訂單哦!
本篇內容主要講解“SpringBoot如何實現設置全局和局部時間格式化”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SpringBoot如何實現設置全局和局部時間格式化”吧!
在開發(fā)中,我們進行數據庫查詢日期類型的時候,往往不是我們想要的時間格式,比如下面的情況:
我數據庫里面把這些日期相關的字段都設置為datatime格式了:
數據類型如下:
實體是這么配置的:
那么默認查詢出來的結果就是這樣的:
救命啊,這什么格式啊,完全不是我想要的年月日時分秒。
其實想解決這種問題也很簡單,無非就是時間格式不對嗎,下面通過全局設置和局部設置兩個方面解決這種問題
一般來說,為了方便和統(tǒng)一,我們可以設置全局處理日期格式化,在配置文件中進行配置
想到application配置文件有properties和yaml兩種格式,我分別給大家準備好了不同格式需要的代碼。
properties格式
# 設置全局的日期格式為年月日時分秒 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # 世界標準時間,為了方式時差,需要+8小時 spring.jackson.time-zone=GMT+8
yaml格式
當然,上面是properties格式,如果你用的是yaml格式,那么就可以使用下面的配置:
spring jackson: date-format: yyyy-MM-dd HH:mm:ss #設置全局的日期格式為年月日時分秒 time-zone: GMT+8 #世界標準時間,為了方式時差,需要+8小時
加上這個配置項之后就可以重啟服務了,再次訪問接口:
可以發(fā)現是我們想要的時間格式了,但是查出來的時間比數據庫多了8小時
這就是加上時區(qū)引起的,如果加上時區(qū)配置項,就是會在原有的時間上+8小時,所以說這個時區(qū)配置項看個人需求,可以配置也可以不配置
雖然全局配置很香,但是有的時候我們不能強制的讓全局保持統(tǒng)一格式,只對個別的進行時間處理
那這個時候,局部設置的作用就體現出來了,為了方便演示,我把全局設置給注釋掉:
引入pom
局部設置需要使用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")
它有兩個參數:
1:pattern:時間格式
2:timezone:時區(qū)
原理和全局設置的兩個參數是一樣的
這里我估計拿出一個加了注解,一個沒加注解的時間屬性進行比較:
重啟項目,測試接口,對比兩個日期格式
當然,和全局配置一樣,注解里面的參數也是根據自己的需求靈活選擇的:
比如我這里不想要時區(qū)了,并且想要年月日的格式,那就直接改:
結果當然是你怎么配置就是什么樣的啦:
到此,相信大家對“SpringBoot如何實現設置全局和局部時間格式化”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。