Java获取时间比实际时间晚8个小时的解决方法

平常只用日期,很少精确到时间,今天偶尔用到了时间,发现小时比本机时间小了8个小时,操作系统是WIN7。时区设置也是+8北京。在网上搜索到可能是注册表坏了,下了一个XP的注册表导入后恢复正常了。

原帖地址:http://huiy.javaeye.com/blog/200512

问题描述:Window XP 系统自己能够读取正确的时间,但是用java获取的时间始终与北京时间相差八个小时。
原因分析:
1.系统本身时区设置错误(可以排除,上面已经交代系统能够获取正确时间
2.注册表出现异常。
注册表对应项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
解决之道:
1.备份Time Zones这一项
2.从正常的并且是相同系统的机器中导出该项,然后倒入到自己机器中

上招不行,还有一招!

1.找到jdk 的安装路径 找到 如:
a) C:\Program Files\Java\jdk1.5.0\jre\lib\zi\Etc;
b) C:\Program Files\Java\jdk1.5.0\jre\lib\zi;
c) C:\Program Files\Java\jre1.5.0\lib\zi\Etc;
d) C:\Program Files\Java\jre1.5.0\lib\zi;
这四个文件路径下找到 GMT 文件 进行删除(注意:在删除之前将其文件备份一下,以防万一);在 C:\Program Files\Java\jdk1.5.0\jre\lib\zi\Etc 下找到 GMT-8 文件复制一份 重命名为 CMT ,将其原来 的 GMT 文件覆盖掉即可!

posted on 2011-04-16 14:17  IceWee  阅读(5003)  评论(0编辑  收藏  举报

导航