Отображение часового пояса в Java - PullRequest
1 голос
/ 27 июля 2010

Мне нужно отобразить часовой пояс в следующем формате в моем пользовательском интерфейсе.

(GMT -05: 00) Восточное время (США и Канада).

Я пытался получить текущее время и часовой пояс из календаря. Но когда я попытался получить отображаемое имя из часового пояса, оно просто отображается как «Восточное время». Я не получаю формат, упомянутый выше. Может ли кто-нибудь помочь.

Ниже приведен мой фрагмент кода, и я использую JDK 1.4.2.

Calendar c = Calendar.getInstance();
TimeZone tz = c.getTimeZone();
String s = tz.getDisplayName();

Ответы [ 2 ]

4 голосов
/ 27 июля 2010

Вот длинный вызов метода getDisplayName (). Попробуйте указать TimeZone.LONG для стиля. Метод не изменился с Java 1.2

GetDisplayName

public final String getDisplayName (булево дневное время, int style, Locale locale)

Возвращает имя этого часового пояса, подходящего для представления пользователю в локали по умолчанию. Если отображаемое имя недоступно для локали, этот метод возвращает строку в нормализованном формате пользовательского идентификатора.

Параметры:

   daylight - if true, return the daylight savings name.
   style - either LONG or SHORT 
   locale - the locale in which to supply the display name.

Возвращает:

  the human-readable name of this time zone in the default locale.

Если этого недостаточно, вы всегда можете попробовать Joda Time .

1 голос
/ 27 июля 2010

Если вам не хватает смещения, взгляните на метод getOffset () на TimeZone.Это должно дать вам достаточно информации для расчета смещения от GMT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...