Gibt mir ein falsches Datumsformat:
Datum: 2013-01-31 18:00:00 +0000 formatiert: 31-01-13 19:00 (ab Zeitstempel: 1359655200.000000)
Online-Conversion-Tool: Ссылка gibt an, dass das erste Datum korrekt ist: 2013-01-31 18:00:00 + 0000.
Warum erzeugt NSDateFormatter ein anderes Datum als NSLog? Sollte nicht [NSDate description]
defaultTimeZone beim Drucken auf der Konsole verwenden? Ich bekomme den gleichen Fehler mit [_dateFormatter setTimeZone:[NSTimeZone localTimeZone]]
; und [_dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]
;
Das ist richtiges Verhalten, weil:
[NSDate description]
verwendet UTC, nicht die lokale Zeitzone (deshalb gibt es in der Beschreibung ein +0000
). NSDateFormatter
verwendet die lokale Zeitzone. Der einzige Weg, wie diese übereinstimmen, ist, wenn Sie NSDateFormatter
angeben, UTC zu verwenden. Das könnte aber nicht das sein, was du willst.
Es ist das Zeitzonenproblem, wie Sie herausgefunden haben. Die Standardzeitzone verwendet die Systemzeitzone. Sagen Sie, wenn Sie in GMT + 1 sind, sollten Sie 19-00 bekommen. Der von Ihnen verwendete Konverter gibt Ihnen GMT-Zeit.
Wenn Sie eine zeitspezifische Zeitzone wünschen und den Offset von GMT kennen, können Sie Folgendes verwenden:
%Vor%Hoffe, das löst das Problem.
Tags und Links iphone date formatting nsdateformatter nsdate