JAVA获取时间比系统时间少八个小时的解决办法

解决的办法把JAVA默认的时区改为东八区.
1,在系统属性里面添加如下一条:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> system.setProperty( " user.timezone " , " Asia/Shanghai " );
2,把默认时区改成我们的时区:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> TimeZonetz = TimeZone.getTimeZone( " Asia/Shanghai " );
TimeZone.setDefault(tz);
但是以上这些方法都只能用在我们自己的应用中,当我们获取时间的时候,改一下时区,但是对于那些应用服务器呢,它们以后记录日志什么的,时间肯定就错了. 于是我想有没有第三种方法可以把电脑恢复到更新以前呢,这样不用加任何代码,JAVA获取的时候都是正确了,就像更新以前一样,可是我的电脑关闭了系统还 原,然后找了一些卸载的工具,卸载所更新的更新包,可是时区的更新包却怎么样也卸不掉.
后来想是不是更新后注册表有什么不同?打开看一下,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones]
果然和我同事的没有更新的电脑上的注册表不一样,它的那个节点导出来是128KB,我的才72KB,于是我导入他的试了一下,再打开netbeans,再打印出时间,终于和系统的时间一样了.
下面我把更新前的注册表文件放在这里,如果有碰到这个问题的朋友,可以先备注你自己的注册表,然后再导入它,看看行不行,如果行的话就很好了,如果不行,再还原你的注册表就可以了.
点击这里下载;

你可能感兴趣的:(java,windows,应用服务器,Microsoft,Netbeans)