pg返回到前端的json数据时间字段比北京时间早8小时
背景:SpringBoot+jpa+postgres
问题描述:
@ApiModelProperty(value = "记录创建时间")
@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
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
ss” , timezone=”GMT+8”)
方法二:
在application.properties文件中添加 spring.jackson.time-zone=GMT+8
扩展:
1.查看时区 show time zone;
如下图示为北京时间。
2.查看支持的时区列表:select * from pg_timezone_names;
3.参考资料:https://blog.csdn.net/fysuccess/article/details/89713345
还没有评论,来说两句吧...