搜尋
首頁Javajava教程SpringBoot如何實現設定全域和局部時間格式化

前言

在開發中,我們進行資料庫查詢日期類型的時候,往往不是我們想要的時間格式,例如下面的情況:

我資料庫裡面把這些日期相關的欄位都設定為datatime格式了:

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

資料型別如下:

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

##實體是這麼配置的:

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

那麼預設查詢出來的結果就是這樣的:

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

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

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

解決問題

#1 全域設定(推薦)

一般來說,為了方便和統一,我們可以設定全域處理日期格式化,在設定檔中進行設定

想到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小时

加上這個設定項目之後就可以重新啟動服務了,再次存取介面:

可以發現是我們想要的時間格式了,但是查出來的時間比資料庫多了8小時

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

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

2 局部設定(不推薦)

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

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

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:時區

原理和全域設定的兩個參數是一樣的

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

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

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

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

當然,跟全域設定一樣,註解裡面的參數也是依照自己的需求靈活選擇的:

例如我這裡不要時區了,並且想要年月日的格式,那就直接改:

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

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

SpringBoot如何實現設定全域和局部時間格式化#

以上是SpringBoot如何實現設定全域和局部時間格式化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用