本文主要是介绍当jdk1.8+springboot遇上时间差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 的启动类中添加这么一个方法,至此,测试系统时间修改成功
这篇关于当jdk1.8+springboot遇上时间差12小时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!