2014-10-07 9 views
7

Ich habe die andere Antwort und Frage gesehen, aber ich fand keine nützliche Antwort für mich. Ich habe eine Zeichenfolge wie 2014-10-07T07:29:55.850Z und ich möchte ein Datum haben, um einander zu vergleichen. Wenn ich diesen Code verwenden:String nach Datum konvertieren Objective-C

NSString *fullDate = payload[@"sent_ts"]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSSZ"]; 
NSDate *date = [dateFormat dateFromString:fullDate]; 

Mein Datum ist gleich Null. Warum?

+0

Sie haben einen Punkt nach den Sekunden ... kein Doppelpunkt. Schauen Sie sich Ihre Format-Zeichenfolge genauer an, bevor Sie eine Frage stellen>< – borrrden

+0

Ich habe das gesehen, aber leider ist es nicht der Fehler. – fustalol

+1

Setzen Sie einzelne Anführungszeichen um die T – borrrden

Antwort

15

Versuchen Sie dies.

NSString *dateString = @"2014-10-07T07:29:55.850Z"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
    NSDate *date = [dateFormatter dateFromString:dateString]; 
+0

Es funktioniert mit einfachen Anführungszeichen auf T und nicht auf Z. Warum? – fustalol

+0

@fustalol - das Z ist ein gültiger Zeitformatierer: http://www.deanoj.co.uk/ios-development/nsdateformatter-formatting-strings-reference/ – foldinglettuce

+0

Es funktioniert. Vielen Dank. –