注册
 找回密码
 注册
江西广告网
查看: 585|回复: 0
打印 上一主题 下一主题

[JAVA] 更新XP后,JAVA获取时间出错的解决办法

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-26 17:54:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
昨天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,再打印出时间,终于和系统的时间一样了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表