在Spring Boot中自定義JSON返回日期格式的指南

在開發Spring Boot應用時,很多時候需要在返回的JSON數據中以特定格式顯示日期和時間。例如,使用LocalDateTimeDate等類型的字段時,默認的序列化格式可能不是你期望的路徑。本文將介紹如何在Spring Boot中實現控制返回JSON數據的日期格式,主要圍繞@JsonFormat進行講解。


1. 為什么需要控制JSON中的日期格式?

默認情況下,Spring Boot(基于Jackson)會按照Jackson的默認配置將日期字段序列化成類似"yyyy-MM-dd'T'HH:mm:ss"的格式。這在某些場景下可能不符合業務要求,或者在前端展示時需要特定的格式。

示例:

{"name": "張三","createTime": "2025-06-17T15:20:30"
}

如果你希望日期顯示為"yyyy-MM-dd HH:mm:ss"形式,比如"2025-06-17 15:20:30",那么就需要自定義格式。


2. 方案一:在字段上使用@JsonFormat

這是最常用的做法。只需要在日期字段上添加注解,指定格式:

public class User {private String name;@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime createTime;// getters and setters
}

效果:

{"name": "張三","createTime": "2025-06-17 15:20:30"
}

3. 方案二:全局配置ObjectMapper

如果項目中大量日期字段都要統一格式,建議配置全局的ObjectMapper

示例:

@Configuration
public class JacksonConfig {@Beanpublic ObjectMapper objectMapper() {ObjectMapper mapper = new ObjectMapper();// 設置全局日期格式mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));return mapper;}
}

這會影響整個應用的所有日期序列化行為。


4. 什么時候用@JsonFormat,什么時候用@DateTimeFormat

場景使用的注解作用范圍
請求參數綁定(例如:請求中日期字符串轉換為Java對象的字段)@DateTimeFormat控制請求參數到Java對象的綁定規則
JSON序列化/反序列化(返回響應的JSON格式控制)@JsonFormat控制序列化輸出的日期格式

總結:返回JSON數據時,主要用@JsonFormat


5. 具體示例:完整的控制器和實體類

import com.fasterxml.jackson.annotation.JsonFormat;public class User {private String name;@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime createTime;// constructors, getters, setters
}
@RestController
public class UserController {@GetMapping("/user")public User getUser() {User user = new User();user.setName("張三");user.setCreateTime(LocalDateTime.now());return user; // 返回的JSON時間會按照@JsonFormat指定的格式輸出}
}

6. 結語

在Spring Boot中控制返回JSON的日期格式,使用@JsonFormat是最直接、最常用的方法。結合全局配置或者字段配置,可以滿足大部分業務需求。

如果你的應用還需要更復雜的日期格式化策略,比如地域性、時區等,也可以在@JsonFormat中加入timezone參數,例如:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

7. 提示

  • 不建議只依賴@DateTimeFormat來控制JSON輸出,它只對請求參數綁定起作用。
  • 全局配置應慎用,避免不同模塊的格式不一致。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84520.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84520.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84520.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【大數據高并發核心場景實戰】 - 數據持久化之冷熱分離

大數據高并發核心場景實戰 - 數據持久化之冷熱分離 當云計算平臺的業務后臺處理工單突然接入客服系統的請求洪流,每日新增10萬工單,3000萬主表1.5億明細表的數據庫開始呻吟——是時候請出「冷熱分離」這劑退燒藥了! 一、業務場景:…

【AI Study】第四天,Pandas(6)- 性能優化

文章概要 本文詳細介紹 Pandas 的性能優化技術,包括: 內存優化計算優化大數據處理實際應用示例 內存優化 數據類型優化 # 查看數據類型 df.dtypes# 查看內存使用情況 df.memory_usage(deepTrue)# 優化數值類型 # 將 float64 轉換為 float32 df[floa…

c++系列之智能指針的使用

💗 💗 博客:小怡同學 💗 💗 個人簡介:編程小萌新 💗 💗 如果博客對大家有用的話,請點贊關注再收藏 🌞 智能指針的使用及原理 AII(Resource Acquisition Is Initializatio…

知識蒸餾(Knowledge Distillation, KD)

知識蒸餾(Knowledge Distillation, KD)是一種模型壓縮與知識遷移技術,通過讓小型學生模型(Student)模仿大型教師模型(Teacher)的行為(如輸出概率分布或中間特征表示)&…

chatGPT 會擴大失業潮嗎?

擊上方關注 “終端研發部” 設為“星標”,和你一起掌握更多數據庫知識 對于部分人而言,失業是必然趨勢。 這不,身后的一測試大哥,自從公司解散之后,已經在家待業半年了。。。 自打OpenAI推出了chatGPT3.0之后&#xff…

FPGA基礎 -- Verilog行為級建模之時序控制

Verilog 行為級建模(Behavioral Modeling)中“時序控制”機制的系統化由淺入深培訓內容,適用于初學者到進階 FPGA 設計工程師的學習路徑。 🎯 一、行為級建模的定位 行為級建模(Behavioral Modeling)是 Ve…

設計模式精講 Day 7:橋接模式(Bridge Pattern)

【設計模式精講 Day 7】橋接模式(Bridge Pattern) 文章簡述 在軟件系統中,類的繼承關系往往會導致類爆炸,尤其是在需要組合多種功能或行為時。橋接模式(Bridge Pattern)通過將抽象部分與其實現部分分離&am…

Apipost 簽約銳捷網絡:AI賦能,共推 ICT 領域 API 生態智能化升級

日前,北京北極狐信息科技有限公司(簡稱 “北極狐科技”)與銳捷網絡股份有限公司(簡稱 “銳捷網絡”)正式簽署合作協議,雙方將聚焦 ICT 基礎設施及解決方案領域,圍繞 API 全鏈路管理與智能化研發…

RK3568筆記八十三:RTMP推流H264和PCM

若該文為原創文章,轉載請注明原文出處。 前面有通過勇哥,實現了RTMP推流,但一直想加上音頻,所以經過測試,寫了一個demo, ffmpeg是使用ubuntu下安裝測試的。 安裝參考:Ubuntu20.4下x264、x265、fdk-aac和FFmpeg4.3源碼編譯安裝_ubuntu安裝libx264-CSDN博客 記錄:實現從…

產業園智慧化升級中 DDC 樓宇自控系統的集成應用優勢:多業態協同與能源可視化管控?

摘要? 在產業園智慧化升級浪潮中,直接數字控制(DDC)系統憑借強大的集成能力,成為實現多業態協同與能源可視化管控的核心技術。本文深入剖析 DDC 系統在整合園區多元業態、優化能源管理方面的獨特優勢,通過系統集成打…

Vue 3瀑布流組件實現詳解 - 圖片展示方案

引言:瀑布流布局的魅力與應用場景 在當今富媒體內容主導的網絡環境中,瀑布流布局已成為展示圖片商品等內容的流行方式。它通過動態布局算法在有限空間內最大化內容展示,提供視覺連續性和流暢瀏覽體驗。本文將深入探討如何使用Vue 3實現一個功…

如何確保郵件內容符合反垃圾郵件規范?

一、遵守相關法規 美國《CAN-SPAM法案》規定,郵件頭信息必須真實準確,要標明廣告性質、提供有效地址,并在 10 個工作日內響應退訂請求。 歐盟《通用數據保護條例》(GDPR)強調獲得用戶明確同意,數據使用要…

MQ解決高并發下訂單問題,實現流量削峰

文章目錄 示例:電商秒殺系統中的流量削峰1. 依賴引入(Maven)2. 消息隊列配置(RabbitMQ)3. 生產者:訂單服務(接收高并發請求)4. 消費者:庫存服務(按系統容量處…

【二進制安全作業】250616課上作業2 - 棧溢出漏洞利用

文章目錄 前言一、使用環境二、程序源碼1. C語言源碼2. 編譯方式 三、源碼分析四、反匯編分析1. 檢查文件安全性2. 查找目標函數3. 計算偏移量4. 繞過 strlen5. 繞過 if 五、編寫EXP結語 前言 直接進入正題 一、使用環境 處理器架構:x86_64 操作系統:U…

Python類型處理與推導式

歡迎來到啾啾的博客🐱。 記錄學習點滴。分享工作思考和實用技巧,偶爾也分享一些雜談💬。 有很多很多不足的地方,歡迎評論交流,感謝您的閱讀和評論😄。 目錄 1 引言2 類型處理3 高效操作AI開發常見數據結構3…

數據庫char字段做trim之后查詢很慢的解決方式

select * from TABLE0 where trim(column1):param 當表數據量大時,即使給column1字段加上索引,這條查詢語句也會很慢。 因為使用trim函數后,column1的索引會失效,有兩種處理方法: 1.給表加上trim(column1)函數索引 …

Kafka核心架構解析:從CAP理論到消息可靠性的設計哲學

摘要 本文從分布式系統CAP理論和消息可靠性兩個視角深入解析Kafka的架構設計,通過概念關系圖和組件交互圖揭示其核心設計思想,并詳細拆解各組件功能與協作機制。文章包含完整的交互流程分析和配置參數說明,是理解Kafka設計精髓的實用指南。 一…

LeetCode 275.H指數 II

題目: 給你一個整數數組 citations ,其中 citations[i] 表示研究者的第 i 篇論文被引用的次數,citations 已經按照 非降序排列 。計算并返回該研究者的 h 指數。 h 指數的定義:h 代表“高引用次數”(high citations&…

OV汽車攝像頭cmos sensor 相關情況介紹

OV汽車攝像頭cmos sensor 相關情況介紹 文章目錄 OV汽車攝像頭cmos sensor 相關情況介紹**1. 汽車攝像頭三大場景應用****2. 車載CMOS SENSOR的核心技術****3. 兩大車規認證:實現真正的車規可靠性****4. 最新產品**2022年,汽車智能化加碼提速,被譽為“智能駕駛之眼”的車載攝…