pg返回到前端的json数据时间字段比北京时间早8小时

àì夳堔傛蜴生んèń 2021-09-08 06:10 547阅读 0赞

背景:SpringBoot+jpa+postgres

问题描述:

  1. @ApiModelProperty(value = "记录创建时间")
  2. @CreationTimestamp
  3. @Temporal(TemporalType.TIMESTAMP)
  4. private Date createTime;

使用上述代码自动生成数据的创建时间,将系统时间写入数据库中。但是从数据库中读取数据的时候,比数据表中的数据少了8小时。

比如:数据表中的时间为: “createTime”: “2021-06-08T15:50:38.859+0800”

但是读取出来的数据为:”createTime”: “2021-06-08T07:50:38.859+0800”

原因:默认情况下,返回的json数据时区是国际标准时区,时间比北京时间早8小时。

解决方法:

方法一:

在该字段上添加:@JsonFormat(pattern=”yyyy-MM-dd HH:mm:ss” , timezone=”GMT+8”)

方法二:

在application.properties文件中添加 spring.jackson.time-zone=GMT+8

扩展:

1.查看时区 show time zone;

如下图示为北京时间。

20210608162626354.png

2.查看支持的时区列表:select * from pg_timezone_names;

3.参考资料:https://blog.csdn.net/fysuccess/article/details/89713345

发表评论

表情:
评论列表 (有 0 条评论,547人围观)

还没有评论,来说两句吧...

相关阅读