天天看點

@JsonFormat和@DataFormat注解解決前後端日期格式一緻性問題

為舉例友善,我這裡給一個簡單的實體類Blog,對應資料庫中的blog 表:

/**
 * 部落格文章實體類
 * 
 * 實體類成員屬性 和 資料庫表字段滿足ORM映射關系
 */
public class Blog {
    
    private Integer blog_id;// 部落格id
    private String blog_title;// 部落格标題
    private String blog_content;// 部落格内容
    private Date blog_date;// 部落格釋出日期
 
    ...(setter/getter/構造函數省略)
}
      

場景分析

場景1:

當我們從資料庫中查詢某篇部落格文章資料時,blog 表中文章釋出日期 blog_date 這個字段,如果未經過處理,後端查詢到的資料傳到前端進行展示時,會得到一個不太符合我們要求的日期格式,比如:

"blog_date": "2020-12-01T14:25:31.296+0000"

為了解決這個問題,将後端傳回給前端的日期格式資料按照需求進行格式化,這時候@JsonFormat注解可以完美解決這個問題!

場景2:

當我們在做使用者個人中心資訊修改的業務時,如果使用者資訊包括出生日期這個内容,這種情況下送出修改請求到後端接口,有時候會出現前端傳遞給後端的日期時間格式不一緻的問題!對于這一問題,@DataTimeFormat注解可以完美的解決!

2. 對Blog 實體類的屬性加上注解

/**
 * 部落格文章實體類
 * 
 * 實體類成員屬性 和 資料庫表字段滿足ORM映射關系
 */
public class Blog {
    
    private Integer blog_id;// 部落格id
    private String blog_title;// 部落格标題
    private String blog_content;// 部落格内容
    
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date blog_date;// 部落格釋出日期
 
    ...(setter/getter/構造函數省略)
}
      

3. @JsonFormat 和 @DataFormat 對比

@JsonFormat注解:主要是背景到前台的時間格式的轉換

@DataFormat注解:主要是前後到背景的時間格式的轉換

其他參考文章:

https://blog.csdn.net/eeeeasy/article/details/81201819

,如果文章對您有幫助,記得點贊支援一下~