Joda Time - 获取时区名称?

时间:2013-04-14 01:38:41

标签: java jodatime

我的时区是UTC + 03:00。它存储在DateTimeZone对象中。如何将其转换为真实姓名,即East Africa Time/EAT

3 个答案:

答案 0 :(得分:11)

使用joda,可以获得时区缩写或名称,如下所示

DateTimeZone dz = DateTimeZone.forID("America/New_York");
String tzid = dz.getShortName(DateTimeUtils.currentTimeMillis());
//tzid will be 'EST'

String longerTimeZoneName = dz.getName(DateTimeUtils.currentTimeMillis());
//longerTimeZoneName  will be 'Eastern Standard Time'

答案 1 :(得分:5)

使用方法TimeZone#getDisplayName()

DateTimeZone tz = //...  
tz.toTimeZone().getDisplayName();

答案 2 :(得分:1)

我无法在JodaTime中找到任何可以提供可读名称的内容。根据我的经验,DateTimeZone.getName()返回id而不是更有用的名称。所以我只能得到" America / New_York"而不是"东部标准时间"。

TimeZone.getDisplayName的建议似乎假设您使用的是Java中的TimeZone,而不是Joda。我看不到JodaTime的getDisplayName()。