2009-10-16 3 views
6

Guten Tag analysiert,NSDateFormatter dateFromString wird kein bestimmtes Datum Zeichenfolge

ich habe ein NSDateFormatter, die nicht eine bestimmte Zeichenfolge zu mögen scheint, dass ich zu konvertieren versuchen. Diese bestimmte Instanz ist

2009-10-16T09:42:24.999605 

Alle meine anderen Daten sind identisch formatiert und können analysiert werden.

Hier ist der Code, der die string in NSDate konvertiert.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSS"]; 

[order setModifiedAtDate:[dateFormatter dateFromString:[orderDataDictionary valueForKey:@"ModifiedAt"]]]; 

order.ModifiedAtDate ist nil nach dem dateFromString Anruf.

Hat jemand andere Fälle, in denen ihre Daten nicht in NSDates umgewandelt werden konnten?

Danke,

Antwort

7

konnte ich das Datum erhalten, indem das Subsekunden Feld aus dem Formatierer zu analysieren:

NSString *test = @"2009-10-16T09:42:24.999605"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
NSDate *testOut = [dateFormatter dateFromString:test]; 

Ich vermute, Sie finden im Detail können Sie heraus, warum es mit dem Subsekunden gescheitert Feld mit dieser Funktion, wie es aussieht, wie es das gleiche tut, aber gibt Fehlermeldungen:

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/instm/NSDateFormatter/getObjectValue:forString:range:error:

Auf jeden Fall, hoffentlich bringt dich das wieder auf Touren.

1

sollten Sie Klein versuchen "s" in Dezimalzahlen Ort, wie folgt aus:

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ssssss"] 

Es ist für mich gearbeitet.