Java事件与本地时间相差8小时解决

Posted 叶威1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java事件与本地时间相差8小时解决相关的知识,希望对你有一定的参考价值。

转 Java事件与本地时间相差8小时解决
问题:

1.new Date() 得到的时间 和系统相差 相差8个小时

2.eclipse控制台打印的时间与系统相差 相差8个小时

3.log4j日志的时间与与系统相差 相差8个小时

上述问题其实是同一个问题。

原因:java获得的时区跟系统的时区不一样

解决方法如下:
转:http://www.huomo.cn/developer/article-a2a.html

1.在代码前加上下面这句话就行了:TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");TimeZone.setDefault(tz)

2.在tomcat中修改catalina.bat文件的 set JAVA_OPTS 在后面加上-Duser.timezone=GMT+8

3.修改注册表中的默认时区改成(GMT+08:00) 北京,重庆,香港特别行政区,乌鲁木齐

如果还不行看下:从正常的并且是相同系统的机器中导出HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones 项,然后导入到自己机器中 。

以上三种方法都是解决方法。

在修改时区的时候最好用代码看下JAVA获得的时区是什么时区,代码如下:

Properties props=System.getProperties();
  Iterator iter=props.keySet().iterator();
  while(iter.hasNext())   String key=(String)iter.next();
  System.out.println(key+" = "+ props.get(key));
 

user.timezone=   就是JAVA获得的时区,然后再看操作系统的时区。去改注册表吧。

以上是关于Java事件与本地时间相差8小时解决的主要内容,如果未能解决你的问题,请参考以下文章

logstash默认@timestamp时间戳时间与本地时间相差8小时

logstash默认@timestamp时间戳时间与本地时间相差8小时

logstash 7.x 中时间问题,@timestamp 与本地时间相差 8个小时

logstash 7.x 中时间问题,@timestamp 与本地时间相差 8个小时

解决Centos7本机时间与实际时间相差8小时

Manjaro 与 Windows 双系统时间相差8小时