2016-10-11 99 views
0

我的代码如下所示,我正在使用android。我发现不同的设备可能会有不同的结果。java:如何获得时区缩写(从偏移量)?

使用不同的手机:我可以得到:“EST”或“GMT-05:00”。

但是,我只想获得缩写(就像“EST”)。

如何获得缩写(或将偏移量更改为缩写)?

String timezone =Calendar.getInstance().getTimeZone().getDisplayName(false, TimeZone.SHORT); 
+0

你是指默认语言环境的时区吗?或特定的ZonedDateTime值? – Heri

+0

默认语言环境的时区 – user1072605

+0

我可能会得到答案,手机可以返回“GMT-05:00”的原因是因为手机将语言改为中文。因此,如果我将代码更改为getDisplayName(false,TimeZone.SHORT,Locale.US),它将返回“EST” – user1072605

回答

0

如果其他人需要解决方案:我只是调整代码,并获得所需的短名称,我需要显示给用户。

private static String getTimeZoneShortName() { 

    String tz = TimeZone.getDefault().getDisplayName(); 

    String[] stz = tz.split(" "); 

    StringBuilder sName = new StringBuilder(); 

    for (int i = 0; i < stz.length; i++) { 
     sName.append(stz[i].charAt(0)); 
    } 
    return sName.toString(); 
}