2015-12-22 44 views
1

我想獲得一個縮寫的時區,例如。太平洋標準時間,美國東部時間等我設法得到一個偏移量,但無法獲得基於偏移量的縮短時區。如何獲得縮短的時區?

誰能幫助?

例如,當

TZ =美國/菲尼克斯 和時間= 1450759239340

DateTimeFormat.forPattern( 「ZZZ」)withZone(TZ).PRINT(時間)。

我得到-07:00結果。

我可以使用這些可用代碼獲得縮短時區嗎?

在此先感謝。

+1

無法重現。在JDK 1.8.0_51和joda-time-2.9.1的Window 7上,我爲3個小寫字母z獲得了「MST」,爲4個z獲得了Mountain Standard Time。對於1個,2個和3個大寫字母Z,我得到:'-0700','-07:00'和'America/Phoenix'。 – Andreas

+0

上述相同的代碼在java 1.7中生成MST,但在1.8.0-60中顯示了偏移量。這可能是喬達時間插件跟上java 8的變化嗎? –

回答

0

下面是如何使用SimpleDateFormat和Calendar類獲取不同的日期格式。

其中之一是在小型情況下使用z獲得PDT,IST類型的輸出。

如果你想詳細的名稱使用zzzz

我會建議您選擇從下面需要的日期格式:

"yyyy.MM.dd G 'at'    HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT 
"EEE, MMM d, ''yy"    Wed, Jul 4, '01 
"h:mm a"      12:08 PM 
"hh 'o''clock' a, zzzz"   12 o'clock PM, Pacific Daylight Time 
"K:mm a, z"      0:08 PM, PDT 
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM 
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700 
"yyMMddHHmmssZ"     010704120856-0700   
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700 

您可以使用的SimpleDateFormat從日期或反之亦然得到適當的格式化字符串。

例如

String originalString = "2010-07-14 09:00:02"; 
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(originalString); 
String newString = new SimpleDateFormat("H:mm").format(date); 

見我blog上一樣。

希望它有幫助!