2013-05-16 3 views
1

J'ai un format de chaîne comme ceci:Date de format de chaîne à NSDate

2007-04-28T03:00:33.000Z 

Et je veux le convertir en NSDate avec cette méthode:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-MM-ddTHH:mm:ss.000Z"]; 
NSDate *myDate = [df dateFromString:str]; 

Mais myDate est toujours nul. une idée pourquoi?

+1

Parce que votre chaîne de format est erroné. http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns – borrrden

Répondre

8

Utilisez ce format

[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"]; 
2

essayer cette

NSString *dateString = @"2007-04-28T03:00:33.000Z"; 
dateString = [dateString stringByReplacingOccurrencesOfString:@":" withString:@"" options:0 range:NSMakeRange(dateString.length-3, 1)]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"]; 
NSDate *date = [formatter dateFromString:dateString]; 
NSLog(@"date: %@", date); 
0

corriger votre format

yyyy-MM-dd'T'HH:mm:ss.SSSZZZ