程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 更新XP後 JAVA獲取時間出錯的解決辦法

更新XP後 JAVA獲取時間出錯的解決辦法

編輯:關於JAVA

昨天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,再打印出時間,終於和系統的時間一樣了.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved