2013-04-14 83 views
9

我的時區爲UTC + 03:00。它存儲在一個DateTimeZone對象內。我該如何將它轉換爲它的真名,也就是East Africa Time/EAT喬達時間 - 獲取時區名稱?

+2

在文檔中沒有什麼用處嗎? http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTimeZone.html – FoolishSeth

+0

@FoolishSeth - 使用DateTimeZone的getName()和getID()。現在嘗試getNameProvider()。 –

+0

書籤相關鏈接 - http://www.dxing.com/utcgmt.htm –

回答

8

隨着喬達,可以得到時區的縮寫或名稱如下

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

我在JodaTime中無法找到任何內容以提供可讀的名稱。根據我的經驗,DateTimeZone.getName()返回的是id,而不是更有用的名稱。所以我只能得到「美國/紐約」,而不是「東部標準時間」。

而TimeZone.getDisplayName的建議似乎假設您正在使用Java中的TimeZone而不是Joda。對於JodaTime,我看不到getDisplayName()。