2009-11-11 5 views
7

私はJoda Timeを使用していて、DateTimeZone.forOffsetHours()を使用して作成されたDateTimeZonesが渡されています。 "PST"、 "EST"などの標準的なタイムゾーン頭字語を使用してこれらのタイムゾーンを印刷したいと思います。Joda Timeでオフセット時間を使用するときにタイムゾーンの略語を表示するにはどうすればよいですか?

ただし、これらのタイムゾーンを使用するDateTimesを印刷するときはいつでも、 "hh:mm"名前頭字語の代わりにタイムゾーン。ここで

は例です:

public class tmp { 
    public static void main(String args[]) { 
     // "PST" 
     System.out.println(DateTimeFormat.forPattern("z").print(new DateTime())); 

     // "PST" 
     System.out.println(DateTimeFormat.forPattern("z").print(new DateTime(DateTimeZone.forTimeZone(TimeZone.getTimeZone("PST"))))); 

     // "-08:00" 
     System.out.println(DateTimeFormat.forPattern("z").print(new DateTime(DateTimeZone.forOffsetHours(-8)))); 
    } 
} 

はジョダの時間を使って最後の例では、適切なタイムゾーンの頭字語をプリントアウトする方法はありますか?

答えて

6

いいえ、それは可能ではありませんが、それはジョーダタイムの問題ではなく、タイムゾーンの動作のためです。

オフセット(UTC-8など)は場所を特定しないため、場所に応じた頭字語も特定しません。 hereのように、複数のタイムゾーンにUTC-8があります。

最初の例は、デフォルトのタイムゾーンがPSTであるために機能します。 2番目の方法は、タイムゾーンをその名前で尋ねる(すべての夏時間など)ために機能します。 3番目のものでは、名前に関連付けられていない固定オフセットタイムゾーンを取得します。

+0

です。私はそのようなものかもしれないと思っていた。情報をありがとう、それは理にかなっています。 – emmby