问题描述:
系统时间正常,但是java程序显示的时间比系统时间落后8小时。
背景描述:
发行版本:CentOS Linux release 7.6.1810 (Core)
内核版本:Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
解决方法:
在tomcat中修改catalina.sh文件,在JAVA_OPTS 后面添加
-Duser.timezone=GMT+8
或
-Duser.timezone=GST+8
或
-Duser.timezone=Asia/Shanghai
如果你是使用java -jar的方式启动的,可以借鉴如下命令:
java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -jar freeapis-service-crontab.jar
说明:jvm启动的时候是取的系统的时区设置,如果jvm的时间有问题,要从根本上解决这个问题需要修改系统的时区。
修改电脑时区的方法:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
扩展知识:
查看本机时区命令:
timedatectl
转载于:https://blog.51cto.com/wangxiaoke/2377032