在開發中,我們進行資料庫查詢日期類型的時候,往往不是我們想要的時間格式,例如下面的情況:
我資料庫裡面把這些日期相關的欄位都設定為datatime格式了:
資料型別如下:
##實體是這麼配置的: 那麼預設查詢出來的結果就是這樣的: 救命啊,這什麼格式啊,完全不是我想要的年月日時分秒。 其實想解決這種問題也很簡單,無非就是時間格式不對嗎,以下透過全域設定和局部設定兩個面向解決這種問題解決問題 #1 全域設定(推薦)一般來說,為了方便和統一,我們可以設定全域處理日期格式化,在設定檔中進行設定想到application設定檔有properties和yaml兩種格式,我分別為大家準備了不同格式所需的程式碼。 properties格式# 设置全局的日期格式为年月日时分秒 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # 世界标准时间,为了方式时差,需要+8小时 spring.jackson.time-zone=GMT+8yaml格式當然,上面是properties格式,如果你用的是yaml格式,那麼就可以使用下面的設定:
spring jackson: date-format: yyyy-MM-dd HH:mm:ss #设置全局的日期格式为年月日时分秒 time-zone: GMT+8 #世界标准时间,为了方式时差,需要+8小时加上這個設定項目之後就可以重新啟動服務了,再次存取介面:可以發現是我們想要的時間格式了,但是查出來的時間比資料庫多了8小時這就是加上時區引起的,如果加上時區配置項,就是會在原有的時間上8小時,所以說這個時區配置項看個人需求,可以配置也可以不配置 2 局部設定(不推薦)#雖然全域配置很香,但是有的時候我們不能強制的讓全域保持統一格式,只對個別的進行時間處理那這個時候,局部設定的作用就體現出來了,為了方便演示,我把全局設定給註解掉: 引入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:時區
#
以上是SpringBoot如何實現設定全域和局部時間格式化的詳細內容。更多資訊請關注PHP中文網其他相關文章!