2016-10-11 4 views
0

Мой код, как belows, я использую android. Я обнаружил, что разные устройства могут иметь разные результаты.java: как получить аббревиатуру Timezone (от смещения)?

Использование другого телефона: Я могу получить: «EST» или «GMT-05: 00».

Однако я просто хочу получить аббревиатуру (точно так же, как «EST»).

Как я могу получить аббревиатуру (или изменить смещение на аббревиатуру)?

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

Вы имеете в виду часовой пояс по умолчанию? Или конкретное значение ZonedDateTime? – Heri

+0

Часовой пояс по умолчанию locale – 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(); 
}