timestamp时间格式转换为常用时间戳
今天在某个不经意的时刻遇到了一个问题。发现通过API接口获取的时间显示与数据库中的时间存在差异。于是乎开始了解更多的相关知识,并把这些学到的知识分享出来,并希望能够帮助到其他人。
问题描述
数据库表中create_time类型为timestamp

数据表如下

通过api接口查询的结果如下

此时我们发现时间格式显示跟我们常用的不一样:
2020-12-09T10:34:40.000+00:00
正常时间显示应该是这样:
2020-12-09 18:34:40
科普知识
UTC: Universal Time Coordinated 协调世界时,又称世界标准时间。
GMT: Greenwich Mean Time 格林尼治平均时。
格林尼治标准时间的正午指的是太阳横穿格林尼治子午线的那一时刻(即在格林尼治时间)。由于地球在其椭圆轨道上运行的速度并不均匀,在此期间可能出现与实际太阳时相差约16分钟的情况。
地球每日的公转并不均匀,并且其速度正在逐渐减缓。这导致全球统一的标准时间制度不再采用格林尼治时间。现在所采用的标准时间为协调世界时(UTC),它是由高度精确的原子钟来维持的时间基准。
对UTC时间表示方法是:最后加一个大写字母Z,比如:2017-02-03T14:30:05Z
其他地区的时间通常以实际时间为基础,并附加相应的时差来表示;例如,在世界 Time 区系统中
世界时与北京时间转换,举一个栗子:
如UTC时间下午2点30分5秒表示为:2020-12-10T14:30:05Z,
当时的北京时间表示为:2020-12-10T22:30:05+08:00
进入正题
我们通过数据库接口获取JSON格式的数据,在开发Java业务实体类时

如上图所示,这里get,set方法就不截图了。
这样重新 run一下项目,再次获取api接口数据就显示常用的时间戳了

