使用@JsonFormat的一個坑及解決

使用@JsonFormat的一個坑及解決

spring boot項目 ,mysql數據庫的datetime數據類型無法使用@JsonFormat解析 ,使@JsonFormat註解失效 。

原因不明 ,解決方案未明-待。。

有一個解決方案:

@JsonFormat註解在字段解析的時候失效瞭 ,但是放在application.yml配置文件中可以生效。具體原因不明 ,猜測底層覆蓋掉format方法 或者Jackson 默認走配置文件的方式?

解決如下

 spring:
  jackson:
      date-format: yyyy-MM-dd HH:mm:ss
      time-zone: GMT+8

同級 spring.jackso.date-formact

JsonFormat的時間格式踩坑

使用JsonFormat註解來處理時間格式時,一定要註意規范寫日期格式,否則會出現奇奇怪怪的時間轉換bug

正確格式

@JsonFormat(partten="yyyy-MM-dd",timezone="GMT+8")
private Date startDate;

錯誤格式:輸出的時間會變成每月1號

@JsonFormat(partten="yyyy-mm-dd",timezone="GMT+8")
private Date startDate;

正確格式

@JsonFormat(partten="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date startDate;

錯誤格式:輸出時間會早10小時

@JsonFormat(partten="yyyy-MM-dd hh:mm:ss",timezone="GMT+8")
private Date startDate;

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: