2010-07-27 46 views
1

我需要在我的用户界面中以下列格式显示时区。java中的时区显示

(格林威治标准时间-05:00)东部时间(美国&加拿大)。

我试着从日历中获取当前时间和时区。但是当我试图从时区获取显示名称时,它只显示为“东部时间”。我没有得到上面提到的格式。任何人都可以帮忙

以下是我的代码片段,我使用的是JDK 1.4.2。

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

您能否突出显示您想要的完整格式字符串?引用它或使用单个刻度使其更易于查看。 – 2010-07-27 11:58:32

回答

4

这里是long getDisplayName()方法的调用。尝试指定TimeZone.LONG作为样式。该方法从Java 1.2

getDisplayName没有改变

公开的最终字符串getDisplayName(布尔日光, INT风格,语言环境的语言环境)

返回适合于该时区的名称以默认语言环境呈现给用户。如果显示名称不适用于语言环境,则此方法会以标准化的自定义ID格式返回字符串。

参数:

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

+0

反正我强烈推荐Joda时间。 – 2010-07-27 12:41:06

1

如果您缺少偏移量,请查看TimeZone上的getOffset()方法。这应该会给你足够的信息来计算GMT的偏移量。

+0

我想他是说它错过了“(美国和加拿大)”部分。 (简单的字符串+将工作) – Nix 2010-07-27 12:02:03