openjdk8+springboot部署到Linux时间快了12个小时

编程

背景:
最近工作过程中发现了一个可奇怪的现象,使用jdk1.8+springboot开发的jar,当部署到centos7上时,new date生成的时间会比系统时间慢了12小时,但是当其在mysql5.6库中读取时间时,又会增加12小时,同样的jar包在我所属的window机器上没有任何问题。
猜想
往往当我们系统时间差8小时,我们很容易想到是不是时区问题,可是现在我们系统在前台展示上没有任何问题,

只有我们自己查看mysql数据库中的信息时才会发现时间慢了12小时,那么我们在没有更多把握的基础上使用了枚举法,

1.linux系统问题,2.jdk问题,3.mysql问题
验证linux系统问题
我们使用date -R查看了系统时区,发现系统当前是东八区,同时时间也是当前正确的时间,所以系统问题扑街。
验证mysql问题
我们使用同样的jar包,在window上运行,结果发现数据库中的结果是正确的,由此再次说明跟人家mysql毫无关系.
验证jdk问题
在只剩下最艰难的一条道路可走时,我们意外的发现了一个好消息,应用在linux上的日志时间也是错误的,这个无疑给我们确定了,问题就是应用程序出的,而且可以知道应该就是时区出了问题,一般这种情况都是修改下jre lib下得时区,可是1.8版本中我并没有找到对应得文件夹,还有方法是修改tomcat得catalina配置文件,可是我用的是springboot,通过一通百度,最终发现了一个比较好使用的方法,在springboot 的启动类中添加这么一个方法

  @PostConstruct

    public void setDefTime() {

        TimeZone.getTimeZone("Asia/Shanghai");

    }


原文链接:https://blog.csdn.net/qq_31075763/java/article/details/90479946

以上是 openjdk8+springboot部署到Linux时间快了12个小时 的全部内容, 来源链接: utcz.com/z/517558.html

回到顶部