天天看點

springboot jackson時間和資料庫查詢的時間不一緻

1、目前的關于jackson的配置檔案

application.yml

jackson:
    date-format: yyyy-MM-dd HH:mm:ss
           

1.1 問題描述

資料庫查詢出來的時間為

springboot jackson時間和資料庫查詢的時間不一緻

接口傳回的資料

springboot jackson時間和資料庫查詢的時間不一緻

可以看出,接口傳回的資料和資料庫查詢出來的相差8個小時。這個時候考慮到時區。

1.2 問題解決

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

2.

Jackson

推薦配置

spring:
    jackson:
      # 設定屬性命名政策,對應jackson下PropertyNamingStrategy中的常量值,SNAKE_CASE-傳回的json駝峰式轉下劃線,json body下劃線傳到後端自動轉駝峰式
      property-naming-strategy: SNAKE_CASE
      # 全局設定@JsonFormat的格式pattern
      date-format: yyyy-MM-dd HH:mm:ss
      # 當地時區
      locale: zh
      # 設定全局時區
      time-zone: GMT+8
      # 常用,全局設定pojo或被@JsonInclude注解的屬性的序列化方式
      default-property-inclusion: NON_NULL #不為空的屬性才會序列化,具體屬性可看JsonInclude.Include
      # 正常預設,枚舉類SerializationFeature中的枚舉屬性為key,值為boolean設定jackson序列化特性,具體key請看SerializationFeature源碼
      serialization:
        WRITE_DATES_AS_TIMESTAMPS: true # 傳回的java.util.date轉換成timestamp
        FAIL_ON_EMPTY_BEANS: true # 對象為空時是否報錯,預設true
      # 枚舉類DeserializationFeature中的枚舉屬性為key,值為boolean設定jackson反序列化特性,具體key請看DeserializationFeature源碼
      deserialization:
        # 常用,json中含pojo不存在屬性時是否失敗報錯,預設true
        FAIL_ON_UNKNOWN_PROPERTIES: false
      # 枚舉類MapperFeature中的枚舉屬性為key,值為boolean設定jackson ObjectMapper特性
      # ObjectMapper在jackson中負責json的讀寫、json與pojo的互轉、json tree的互轉,具體特性請看MapperFeature,正常預設即可
      mapper:
        # 使用getter取代setter探測屬性,如類中含getName()但不包含name屬性與setName(),傳輸的vo json格式模闆中依舊含name屬性
        USE_GETTERS_AS_SETTERS: true #預設false
      # 枚舉類JsonParser.Feature枚舉類中的枚舉屬性為key,值為boolean設定jackson JsonParser特性
      # JsonParser在jackson中負責json内容的讀取,具體特性請看JsonParser.Feature,一般無需設定預設即可
      parser:
        ALLOW_SINGLE_QUOTES: true # 是否允許出現單引号,預設false
      # 枚舉類JsonGenerator.Feature枚舉類中的枚舉屬性為key,值為boolean設定jackson JsonGenerator特性,一般無需設定預設即可
      # JsonGenerator在jackson中負責編寫json内容,具體特性請看JsonGenerator.Feature
           

繼續閱讀