На самом деле вам нужно установить часовой пояс, календарь и локаль. Если вы не установили локаль, у пользователя включено время AM / PM, то средство форматирования добавит маркер AM / PM! Если вы не установите часовой пояс, он будет использовать текущий часовой пояс, но пометит его как «Z» («Zulu» или GMT). Если вы не установите календарь, пользователи с японским имперским календарем будут иметь количество лет с момента вознесения Императора, а не количество лет с момента рождения Иисуса Христа. Обязательно протестируйте во всех упомянутых мною сценариях!
NSDateFormatter * f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
f.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
f.calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
f.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSString * str = [f stringFromDate:someDate];
NSDate * date = [f dateFromString:dateStr];