一、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