千里冰封
JAVA 浓香四溢
posts - 151,comments - 2801,trackbacks - 0
昨天XP自动更新,提示的时候,我不经意间看到了有一项更新是有关时区的更新,当时也没管什么,因为WINXP的自动更新总不会给电脑带来什么危害吧,谁知道,过了一段时间,正好我的程序要获取电脑的时候,却整整比我电脑上显示的时候少了八个小时.
   于是上网去查,看谁碰过这种问题,一查还真有人碰到过这问题,但是解决的办法无非就是每次在获取时间之前,把默认的时区改为东八区,有如下几种方法:
    1,在系统属性里面添加如下一条:
System.setProperty("user.timezone""Asia/Shanghai");
    2,把默认时区改成我们的时区:
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
        TimeZone.setDefault(tz);
    但是以上这些方法都只能用在我们自己的应用中,当我们获取时间的时候,改一下时区,但是对于那些应用服务器呢,它们以后记录日志什么的,时间肯定就错了.于是我想有没有第三种方法可以把电脑恢复到更新以前呢,这样不用加任何代码,JAVA获取的时候都是正确了,就像更新以前一样,可是我的电脑关闭了系统还原,然后找了一些卸载的工具,卸载所更新的更新包,可是时区的更新包却怎么样也卸不掉.
    后来想是不是更新后注册表有什么不同?打开看一下,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones]
果然和我同事的没有更新的电脑上的注册表不一样,它的那个节点导出来是128KB,我的才72KB,于是我导入他的试了一下,再打开netbeans,再打印出时间,终于和系统的时间一样了.
    下面我把更新前的注册表文件放在这里,如果有碰到这个问题的朋友,可以先备注你自己的注册表,然后再导入它,看看行不行,如果行的话就很好了,如果不行,再还原你的注册表就可以了.
    点击这里下载;









尽管千里冰封
依然拥有晴空

你我共同品味JAVA的浓香.
posted on 2008-06-09 12:48 千里冰封 阅读(2608) 评论(6)  编辑  收藏 所属分类: JAVASE

FeedBack:
# re: 更新XP后,JAVA获取时间出错的解决办法
2008-06-09 14:01 | 日月雨林@gmail.com
很有价值!以后可以借鉴了!  回复  更多评论
  
# re: 更新XP后,JAVA获取时间出错的解决办法
2008-06-09 16:48 | 隔叶黄莺
碰到过 Eclipse 获取的时间总对不上系统时间的情况,收藏,谢谢!  回复  更多评论
  
# re: 更新XP后,JAVA获取时间出错的解决办法[未登录]
2008-06-11 15:11 | jimmy
感谢了,收藏
  回复  更多评论
  
# re: 更新XP后,JAVA获取时间出错的解决办法
2008-07-30 12:26 | liliang
太感谢了……恩人!哈哈  回复  更多评论
  
# re: 更新XP后,JAVA获取时间出错的解决办法
2008-12-30 13:14 | 北京时间
很有价值!  回复  更多评论
  
# re: 更新XP后,JAVA获取时间出错的解决办法
2009-12-03 18:26 | 雷峰
没结果,还是跟系统时间对不上啊?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: