Ich arbeite an einer Zeit-App, die die Zeit verschiedener Zeitzonen anzeigt. Dazu verwende ich eine Standardzeit haDate
(UTC tz).
Für displayDate
verwende ich System-Zeitzone api. Die Zeitzone ist America/Santiago
(UTC-3: 00).
"haDate" -Code -
%Vor% Das Problem ist, wenn ich diesen Code auf dem Simulator tz.secondsFromGMT
ausführen lasse -10800
, aber auf dem Gerät gibt es -14400
zurück, was 1 Stunde weniger ist.
Gerät und Simulator verwenden dieselbe timeZone Asia/Kolkata
(UTC + 5: 30). Ich weiß, America/Santiago
verwendet DST, aber warum gibt es mir verschiedene Sekunden, sogar beide (Simulator und Gerät) sind auf der gleichen Zeitzone.
Was ist falsch und wie kann ich es beheben?
HINWEIS
Um das Problem mit der Sommerzeit zu beheben, verwende ich diesen Code. Aber es geht immer auf beiden Geräten zum else Teil. (BTW unter code ist nicht erforderlich, da tz.secondsFromGMT
immer Sekunden nach DST-Anpassungen zurückgibt.)
Wenn ich den tz aufzeichne -
Beim Simulator
tz America/Santiago (GMT-3) offset -10800
Auf dem Gerät
tz America/Santiago (GMT-4) offset -14400
Es wird also keine Sommerzeit verwendet.
HINWEIS 2
Dieses Problem tritt nur bei iPad 2 auf. Andere Geräte funktionieren einwandfrei.
HINWEIS 3
Mein iPad 2 mit iOS 8.4. Beide Zeitzonen (Chile Standardzeit - America/Santiago
und Osterinsel Standardzeit - Pacific/Easter
) geben mir falsche Sekunden
Chile hat Anfang 2015 das TZ geändert. Wahrscheinlich hat Ihr iPad 2 eine iOS-Version mit einer veralteten Zeitzonendatenbank. Aktualisieren Sie es.
Die Zeit in Chile ist in zwei Zeitzonen unterteilt. Continental Chile verwendet den Zeitversatz UTC-03: 00. Darüber hinaus verwendet Osterinsel den Zeit-Offset UTC-05: 00. [1]
Bis 2015 nutzte Continental Chile den Zeitversatz UTC-04: 00 und Osterinsel verwendete UTC-06: 00 für die Standardzeit, wobei die Sommerzeit ungefähr zwischen Oktober und März jedes Jahr liegt. Im Januar 2015 wurde jedoch bekannt gegeben, dass das Land den Zeitausgleich während der Sommerzeit beibehalten wird.
Tags und Links objective-c ios cocoa-touch timezone nsdate