本文主要是介绍前后端交互出现的问题:前端显示时间与H2数据库时间数据相差八小时问题完美解决!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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数据库时间数据相差八小时问题完美解决!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!