Parsen von nicht unterstützten Datumsformate in über Cocoa ist NSDate
Mit dem Cocoa-framework, wie kann ich parse @"2008-12-29T00:27:42-08:00" in ein NSDate-Objekt? Die standard - -dateWithString:
mag es nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie NSDateFormatter zu analysieren Termin:
Den unicode-Datum-format-Muster definiert die format-string können Sie mit der
setDateFormat:
Methode.Beachten Sie, dass wenn Sie eine Ausrichtung auf 10.4 dann müssen Sie rufen:
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
. Nicht erforderlich für iphone oder leopard, da dies die Standardeinstellung ist der Modus da ist.Wenn Sie nur behandeln Sie das ISO-8601-format (von denen, der string ist ein Beispiel), könnten Sie versuchen,meine ISO-8601-parser und unparser.
Eigentlich müssen Sie die Zeitzone, den Kalender und das Gebietsschema. Wenn Sie don ' T set locale, ein Benutzer hat die AM/PM-Zeit aktiviert der formatter wird fügen Sie AM/PM-Markierung! Wenn Sie nicht legen Sie die Zeitzone zu verwenden, wird die aktuelle Zeitzone, aber daneben wird es als "Z" ("Zulu" oder GMT). Wenn Sie nicht festlegen, Kalender, Benutzer mit japanischen imperialen Kalender wird die Anzahl der Jahre seit dem aktuellen Kaisers Aufstieg, statt der Anzahl der Jahre seit Jesus Christus geboren wurde. Werden Sie sicher, dass der test in allen Szenarien, die ich erwähnt!
Wie die Zeitzone eingestellt ist, änderte sich von ios 5 auf ios 6. iOS 6 unterstützt das format +01:00 ZZZZZ aber ios 5 nicht. Ich löste dieses Problem mit dieser Lösung, die für mich gearbeitet um ein Datum zu analysieren, die mit dem folgenden format in ios 5 und 6.
2013-05-07T00:00:00+01:00