I\'m trying to use an NSDateFormatter to parse dates that are in either of these formats
@\"2013-02-01T14:21:00\"
or
@\"201
I wrote an universal parser which dropped milliseconds part.
@implementation JSONModel(NSPAdditions)
- (NSDate *)NSDateFromNSString:(NSString*)string {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSArray* parts = [string componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@" T"]];
if ([parts count] <= 1) {
return [formatter dateFromString:string];
}
NSString *part0 = parts[0];
NSAssert([part0 length] == [@"yyyy-MM-dd" length], @"Date format error");
NSString *part1 = parts[1];
if ([part1 length] > [@"HH:mm:ss" length]) {
part1 = [part1 substringToIndex:[@"HH:mm:ss" length]];
}
NSString *fmted = [NSString stringWithFormat:@"%@ %@", part0, part1];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
return [formatter dateFromString:fmted];
}
@end