Wie drucken Sie Zeitzonenabkürzungen aus, wenn Sie die Offset -Stunden in der Joda -Zeit verwenden?

StackOverflow https://stackoverflow.com/questions/1718484

  •  19-09-2019
  •  | 
  •  

Frage

Ich benutze Joda Time und werde an DateTimeZones bestanden, die mithilfe von Verwendung erstellt werden DateTimeZone.forOffsetHours(). Ich möchte diese Zeitzonen mit Standard -Timezone -Akronymen wie "PST", "EST" usw. drucken.

Immer wenn ich DETTETEN DREXTE DRUCKE DIE DIE DIESE TIMEZONES, bekomme ich eine "HH: MM" -Darstellung der Timezone anstelle des Namens -Akronyms.

Hier ist ein Beispiel:

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) )) );
    }
}

Gibt es eine Möglichkeit, das entsprechende Zeitzone -Akronym im letzten Beispiel mit Joda Time auszudrucken?

War es hilfreich?

Lösung

Nein, es ist nicht möglich, aber es ist kein Joda-Zeit-Problem, es liegt an der Funktionsweise von Zeitzonen.

Der Offset (z. B. UTC-8) bestimmt den Ort nicht, wodurch auch nicht das Akronym bestimmt wird, das vom Standort abhängt. Wie du sehen kannst hier, Es gibt UTC-8 in mehreren Zeitzonen.

Das erste Beispiel funktioniert, da Ihre Standard -Zeitzone PST ist. Der zweite funktioniert, weil Sie nach einer Zeitzone mit seinem Namen fragen (mit all den Tageslichtsparen usw.). In der dritten erhalten Sie eine festgelegte Zeitzone mit festem Offset, die keinen Namen zugeordnet ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top