最近搭建一个新的运行环境, java运行时的时间比实际时间晚了12h, 显示服务器系统时间正常, 百思不得其解
在网上查了大多数遇到jvm时间与时间不一致的情况都是相差8h, 这是东八区和标准时间的缘故
打印时区, 发现系统用的是est 时区 (EST eastern standard time (美国)东部标准时间 慢北京时间 13个小时。)
解决方案:
方法一:JVM运行时增加参数,指定时区 -D user.timezone=GMT+08
方法二:直接在程序中设置时区。System.setProperty(“user.timezone”,”GMT +08″);
方法三:直接加上28800就好了(8hours*60min*60sec=28800)
我采用了方法一: 在tomcat 启动的时候,在catalina.sh 文件中添加如下代码
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
重启Tomcat后正常.