Вам нужно удалить последнее двоеточие (часовой пояс, "-04: 00" -> "-0400"), так как Z
будет принимать что-то вроде "-0800", тогда вы можете попробовать это:
NSString *dateString = @"2011-08-30T11:44:54.345-04:00";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-ddEHH:mm:ss.SSSZ"];
NSDate *date = [dateFormat dateFromString:dateString];
[dateFormat release];
Подробнее о форматировании даты см. На этой странице .