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数据问题,他就会被误导,其实各种数据库遇到这种啊问题都是一样的方法,只需要在实体类要获取的时间字段上面添加此代码即可解决!
-------------金麟岂是池中物一遇风云便化龙----------------
本文解决H2数据库时间戳与前端显示时间相差8小时的问题,介绍原因在于数据库默认使用UTC时间,而中国区时为UTC+8。通过在实体类时间字段上添加特定注解,实现本地时间转换。
1450

被折叠的 条评论
为什么被折叠?



