天天看點

springboot項目時間不一緻解決方案一、springboot項目時間不一緻解決方案

一、springboot項目時間不一緻解決方案

1.第一種原因:資料庫查到的時間和實際時間不一緻。

解決方案:配置資料源時,設定時區。

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/accesscontrolmanager?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=UTF8
    username: root
    password: root
           

2.第二種原因:資料庫查詢到的時間是正确的,但是在前端頁面展示的時候少了8個小時。

為什麼會出現這種情況?

由于我們使用的是SpringBoot架構,SpringBoot中對于@RestController或者@[email protected]注解的接口方法的傳回值預設是Json格式,是以對于data類型的資料,在傳回浏覽器段被SpringBoot預設的JackJson架構轉換,而JackSon架構預設的時區是GMT,相對于中國少了8個小時。

第一種解決方案:

在yml中配置如下即可:

spring:
	jackson:
		time-zone: GMT+8
           

第二種解決方案:

在實體類加入以下注解:

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

第三種解決方案:

在yml中加入以下代碼

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/accesscontrolmanager?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=UTF8&useJDBCCompliantTimezoneShift=true
    username: root
    password: root