前后端交互出现的问题:前端显示时间与H2数据库时间数据相差八小时问题完美解决!

本文解决H2数据库时间戳与前端显示时间相差8小时的问题,介绍原因在于数据库默认使用UTC时间,而中国区时为UTC+8。通过在实体类时间字段上添加特定注解,实现本地时间转换。

HI 大家好,我是菜鸟阿贵

近期在项目中遇到了一小小的问题,虽然不是大问题,但是自行百度以后觉得网友们用的技术和我的不太一样,所以我在这里给大家说明一下!

问题说明:项目是一个从前端拉取数据库数据的操作,但是今天在拉取的时候出现了这个问题:
1:其他数据都显示正确,可是就是时间戳有点问题,数据库中的时间,和前段拉到的时间竟然相差八个小时!
2:这究竟是什么原因呢?让小弟来和大家讲解一下:
①:原因:由于默认的是UTC时间,所以在中国有8个小时的时差!
简单的来说,您需要将他改成本地时间,因为数据库会默认UTC,而我们中国要比这个时间多八小时!

删除线utc格式

2: 如图:我的H2数据库时间数据:
在这里插入图片描述
如图我们可以看出,我的时间戳是:2020-05-22 12:40:46

但是前段显示的是这样的:
在这里插入图片描述
由此可见,前段时间提前了八小时,那我们怎么去解决呢,很简单,你只需要在后端代码中,实体类的地方,时间字段上添加如下代码即可:

 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")

pattern:中的时间格式定义,您可以改成自己想要格式即可!
为什么本文要特别说明是 H2 数据库?
因为在网上都是Mysql 等相关数据库的这类问题,很多新手朋友一看不是和自己相同的H2数据问题,他就会被误导,其实各种数据库遇到这种啊问题都是一样的方法,只需要在实体类要获取的时间字段上面添加此代码即可解决!

-------------金麟岂是池中物一遇风云便化龙----------------

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值