2017-08-24 22 views
0

我要根據時區的國家名稱(時區ID),如如何從一個時區得到了時區ID

america/new_york 

我當前的代碼是

String time_zone = TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT); 

這將返回格林尼治標準時間05:00

+1

國家名!=時區ID。我認爲美國有10個時區(包括所有海外地區),但只有一個名稱。可以使用時區ID很好;只是不要把它當作國家的名字來對待。 –

+0

好吧,我明白了 – byteC0de

+0

規範時區名稱不包含國家。格式是「Area/Locality」。在大多數情況下,「地區」是一個*大陸*或一個*海洋*。例如,'America/Sao_Paulo'在*巴西*,在南美洲,夏威夷是'Pacific/Honolulu' –

回答

2

您可以使用此

TimeZone.getDefault().getID() 
2
得到國名

該國家不是時區數據的一部分。

例如,它不可靠地編碼在ID中,如在Africa/AbidjanAmerica/Cancun中那樣。

要做到這一點,唯一的方法是使用顯式查找表將時區標識映射到國家。

+0

我使用時區ID作爲國家, – byteC0de

+0

所以......你的問題不是「怎麼做我得到的國家「,但」我如何從時區獲得時區ID「?這是相當大的差異。 –

+0

好的,我更新了我的問題,因爲錯誤 – byteC0de

相關問題