簡體   English   中英

Java TimeZone更新

[英]Java TimeZone update

我的系統時區是(UTC + 02:00)伊斯坦布爾。 當我運行一個簡單的Java程序以顯示時區時,它會顯示“ America / Rio_Branco”(不正確)。 但是,當我設置為任何其他時區時,它可以正常工作。 另外,我使用tzupdater.jar更新了我的jre(我將路徑設置為.. \\ jre \\ lib)。 可能是什么原因?

我的代碼是:

import java.util.*;
import java.text.*;
public class Time
{
    public static void main(String[] args){
        TimeZone timeZone = TimeZone.getDefault();
        System.out.println("timeZone : "+timeZone);
    }
}

我用來自jre8的文件替換了tzmappings文件,它解決了我的問題。

如果您閱讀JavaDoc,將會看到以下內容:

Gets the default TimeZone for this host. The source of the default TimeZone may vary with implementation.

因此,得到“ America / Rio_Branco”的原因是因為主機(操作系統)的JDK實現認為您處於Rio Branco的時區。 在您提到的注釋中,您正在運行Windows 7,因此Windows可能會錯誤地在某個地方設置了時區。 我認為Windows上的Java在這里檢查注冊表:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/TimeZoneInformation

也許您可以檢查該值?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM