美文网首页
SpringBoot+k8s+docker项目 遇到的时区错误问

SpringBoot+k8s+docker项目 遇到的时区错误问

作者: 蜜雨陶林 | 来源:发表于2018-05-12 10:08 被阅读0次

标题写这么多技术,是为了方便准确定位。自己在查找资料的时候,搜到的很多相关度很低的。而且大部分文章都是直接copy,因此做个仔细总结在此。

场景描述:测试反馈一个bug,说所有记录的时间与数据库不匹配。事实确实是这样的,但是感觉非常奇怪。因为我只是把数据从数据库里读出来,读出来的是Date类型,然后我转成时间戳存到了es里面,再从es读出来发现时间就不对了。首先我想不是代码的问题。仔细核对了数据,忽然发现一个规律,所有记录的时间都慢了8个小时,8个小时不正是每个时区的间隔吗?于是想到可能是时区的问题。

查找下查看linux系统时区的方法,发现了很多:

常用的是 date -R

 [root@lnx01 ~]# date -R

Sun, 11 Jan 2015 23:06:02 +0800

后面是+0800 代表是东八区。

而我是用另一种方法,cat /etc/timezone 显示的却是 UTC

很明显我的项目是用这个这个时区,但是系统里的时间却是用东八区显示,至于这两者为什么不统一还不清楚。那么现在的问题就是让我的项目用东八区的时区即可。

我的项目是基于docker部署的,生成镜像的是有修改时区

但是没有起作用

想到了几种办法:

一种是修改java进程启动参数,-Duser.timezone=Asia/Shanghai。尝试了以后发现不行;

一种是修改spring boot启动参数,spring.jackson.time-zone=Asia/Shanghai,发现还是不行;

在网上看到一个网友的评论,得到启发

其实本来早该想到,怎奈好久没写shell,忘了怎么修改文件内容了。只要把这个文件内容覆盖掉就好了。于是修改docker文件

发现问题解决了,spring boot打出来的日志时间正确了,数据存入也正确了。

相关文章

网友评论

      本文标题:SpringBoot+k8s+docker项目 遇到的时区错误问

      本文链接:https://www.haomeiwen.com/subject/dcecdftx.html