8

私は Joda Time を使用しており、を使用して作成された DateTimeZones が渡されていDateTimeZone.forOffsetHours()ます。「PST」、「EST」などの標準のタイムゾーンの頭字語を使用して、これらのタイムゾーンを印刷したいと思います。

ただし、これらのタイムゾーンを使用する DateTime を出力すると、名前の頭字語ではなく、タイムゾーンの「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) )) );
    }
}

Joda Time を使用して、最後の例で適切なタイムゾーンの頭字語を出力する方法はありますか?

4

1 に答える 1

6

いいえ、それは不可能ですが、それは冗談の時間の問題ではありません。それはタイムゾーンがどのように機能するかによるものです。

オフセット(UTC-8など)は場所を決定しないため、場所に依存する頭字語も決定しません。ここでわかるように、複数のタイムゾーンにUTC-8があります。

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

于 2009-11-12T06:08:30.960 に答える