2009-10-16 15 views
6

Buon giorno,NSDateFormatter dateFromString non analizzare una particolare stringa di data

Ho un NSDateFormatter che non sembra come una corda particolare, che sto cercando di convertire. questa particolare istanza è

2009-10-16T09:42:24.999605 

Tutte le altre mie date sono formattate uguali e possono essere analizzate.

Questo è il codice che converte lo string nello NSDate.

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

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

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

order.ModifiedAtDate è nullo dopo la chiamata dateFromString.

Qualcun altro ha riscontrato casi in cui le date non potevano essere convertite in NSDates?

Grazie,

risposta

7

ero in grado di ottenere la data per analizzare rimuovendo il campo inferiore al secondo dal formattatore:

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]; 

Ho il sospetto che si può scoprire in modo più dettagliato il motivo per cui non è riuscito con l'inferiore al secondo campo che utilizza questa funzione come sembra che fa la stessa cosa, ma restituisce messaggi di errore:

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:

In ogni caso, spero che questo ti ritorni di nuovo.

1

Si dovrebbe cercare minuscole "s" in decimali luogo, come questo:

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

ha funzionato per me.

Problemi correlati