溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何實現設置全局和局部時間格式化

發(fā)布時間:2023-01-09 09:36:53 來源:億速云 閱讀:151 作者:iii 欄目:開發(fā)技術

本篇內容主要講解“SpringBoot如何實現設置全局和局部時間格式化”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SpringBoot如何實現設置全局和局部時間格式化”吧!

前言

在開發(fā)中,我們進行數據庫查詢日期類型的時候,往往不是我們想要的時間格式,比如下面的情況:

我數據庫里面把這些日期相關的字段都設置為datatime格式了:

SpringBoot如何實現設置全局和局部時間格式化

數據類型如下:

SpringBoot如何實現設置全局和局部時間格式化

實體是這么配置的:

SpringBoot如何實現設置全局和局部時間格式化

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

SpringBoot如何實現設置全局和局部時間格式化

救命啊,這什么格式啊,完全不是我想要的年月日時分秒。

其實想解決這種問題也很簡單,無非就是時間格式不對嗎,下面通過全局設置和局部設置兩個方面解決這種問題

解決問題

1 全局設置(推薦)

一般來說,為了方便和統(tǒng)一,我們可以設置全局處理日期格式化,在配置文件中進行配置

想到application配置文件有properties和yaml兩種格式,我分別給大家準備好了不同格式需要的代碼。

properties格式

# 設置全局的日期格式為年月日時分秒
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 世界標準時間,為了方式時差,需要+8小時
spring.jackson.time-zone=GMT+8

SpringBoot如何實現設置全局和局部時間格式化

yaml格式

當然,上面是properties格式,如果你用的是yaml格式,那么就可以使用下面的配置:

spring 
  jackson: 
    date-format: yyyy-MM-dd HH:mm:ss #設置全局的日期格式為年月日時分秒
    time-zone: GMT+8 #世界標準時間,為了方式時差,需要+8小時

加上這個配置項之后就可以重啟服務了,再次訪問接口:

可以發(fā)現是我們想要的時間格式了,但是查出來的時間比數據庫多了8小時

這就是加上時區(qū)引起的,如果加上時區(qū)配置項,就是會在原有的時間上+8小時,所以說這個時區(qū)配置項看個人需求,可以配置也可以不配置

SpringBoot如何實現設置全局和局部時間格式化

2 局部設置(不推薦)

雖然全局配置很香,但是有的時候我們不能強制的讓全局保持統(tǒng)一格式,只對個別的進行時間處理

那這個時候,局部設置的作用就體現出來了,為了方便演示,我把全局設置給注釋掉:

SpringBoot如何實現設置全局和局部時間格式化

引入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ū)

原理和全局設置的兩個參數是一樣的

這里我估計拿出一個加了注解,一個沒加注解的時間屬性進行比較:

SpringBoot如何實現設置全局和局部時間格式化

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

SpringBoot如何實現設置全局和局部時間格式化

當然,和全局配置一樣,注解里面的參數也是根據自己的需求靈活選擇的:

比如我這里不想要時區(qū)了,并且想要年月日的格式,那就直接改:

SpringBoot如何實現設置全局和局部時間格式化

結果當然是你怎么配置就是什么樣的啦:

SpringBoot如何實現設置全局和局部時間格式化

到此,相信大家對“SpringBoot如何實現設置全局和局部時間格式化”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI