PG数据库 timestamp入库时间少8小时

972 阅读1分钟

一、问题描述

1.环境

  • Spring Data Jpa
  • Postgresql数据库
  • 数据库时间字段设置类型为 TimeStamp
  • Postgresql对应 java实体类型是Date

2.问题

  • new Date()向数据库新增数据时少8小时

二、解决方案

  • 检查jvm运行是否加时区,若没有设置东八时区 -Duser.timezone=GMT+8
  • 检查PG数据库时区是否正确和当前时间比对
  • jpa加上时区配置
spring.jpa.properties.hibernate.jdbc.time_zone=Asia/Shanghai

在这里插入图片描述

三、注意

如果使用K8s部署 注意编写dockerfile配置设置时区(Asia/Shanghai),因为centos默认utc,本地cst(+8时区,上海时间),相差8小时。