mir viele Fragen im Zusammenhang mit Timezones auf Stackoverflow, aber ich konnte nicht finden, die man auf das Problem Ich kämpfe mit Bewertung:Warum DateTimeZone.getDefault() nicht aktualisiert, wenn Zone in Android geändert wird
- Warum gibt Jodas
DateTimeZone.getDefault()
aktualisierte Zeitzone bei TZ-Änderung (nach dem Fortsetzen einer Anwendung?) Zurück.TimeZone.getDefault()
scheint gut zu funktionieren. - Sollte ich verwenden, um Jodas
DateTimeZone
Objekt auf den neuesten Stand zu bekommen?
Hier ist, wie zu replizieren:
- starten App, die sowohl
DateTimeZone.getDefault()
druckt undTimeZone.getDefault()
:
09-15 16: 46: 59,512 14.961-14.961/com .beispiel.android.whatever D/Zeitzone: DateTimeZone.getDefault() = Europe/London;TimeZone.getDefault() = libcore.util.ZoneInfo [id = "Europa/London", ...]
- Gehen Sie zu Einstellungen -> Zeitzone ändern zu PDT.
- to Application Gehen Sie zurück, die Sachen (zB in onResume()) druckt:
09-15 08: 49: 24,727 14.961-14.961/com.example.android.whatever D/Zeitzone: DateTimeZone.getDefault() = Europa/London; TimeZone.getDefault() libcore.util.ZoneInfo [id = "Amerika/Los_Angeles", ...]
- In dieser Phase I die rotieren kann App. Die
DateTimeZone.getDefault()
wird feststecken. - Nur nach der Anwendung onRestart - der Wert wird korrekt sein.
Warum ist es so?