天天看點

SpringBoot 項目 傳回時間 日期、格式不正确 解決辦法

文章目錄

  • ​​SpringBoot 項目傳回時間格式不正确 解決辦法​​
  • ​​1、遇到問題​​
  • ​​2、解決方法​​
  • ​​(1)問題所在​​
  • ​​(2)如何解決​​
  • ​​(3)效果​​

SpringBoot 項目傳回時間格式不正确 解決辦法

  今天做一個 SpringBoot+Vue 的一個練習項目,想要搞一個建立該賬号的時間,記錄下來,然後展示在網頁中,但是遇到了很多的問題,先介紹以下,我們之前怎麼做的。

1、遇到問題

  為了實作記錄并展示建立(注冊)時間,在資料庫中設定字段,設定timestamp類型,預設now() 時間

create_time timestamp default now() comment '儲存時間' # 預設時間      

  

  在java中使用實體類接收,createTime 使用 Date 類型來接收日期類型的資料庫字段

  

@TableField("create_time")
private Date createTime ;      

  

  然後建立時間之後,查詢資料庫的時間以及格式都非常正常,我們在連接配接資料庫之前同樣設定正确的時區,或者 serverTimezone 設定成 GMT%2b8

  

spring.datasource.url=jdbc:mysql://localhost:3306/vvue?serverTimezone=Asia/Shanghai      

下面是新增賬號時電腦時間

SpringBoot 項目 傳回時間 日期、格式不正确 解決辦法

查詢資料庫中,時間與我們建立的時間是一緻的,格式也是正确的

SpringBoot 項目 傳回時間 日期、格式不正确 解決辦法

然而在實際的展示前端頁面中,傳回的響應展示在頁面中

SpringBoot 項目 傳回時間 日期、格式不正确 解決辦法

  格式是java 的格式,但是時間少了8個小時。我就非常納悶了,感覺都沒有問題,于是找了很多資料找到了解決方法。

2、解決方法

引用了其他部落客的資料經驗

(1)問題所在

  我們傳回的響應都是json格式傳回的,spring轉json的預設實作jackson中會根據時區去轉換時間,而jackson的預設時區跟國内是相差8小時的,是以這裡得重新設定目前項目地所在時區

(2)如何解決

  在 application.properties 配置檔案中中設定轉會 json 的預設時區 以及 轉成時間的格式

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Shanghai      

(3)效果

  更改好配置檔案之後,重新啟動項目,發現時間已經正确而且格式符合我們的要求。