2017-08-24 21 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

相关问题