為舉例友善,我這裡給一個簡單的實體類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,如果文章對您有幫助,記得點贊支援一下~