Если вы хотите создать NSDate из строки, вам нужно использовать NSDateFormatter , чтобы сделать это. Важно отметить, что средство форматирования будет использовать часовой пояс текущей локали при построении даты, если вы не указали часовой пояс как часть формата. Для получения дополнительной информации о создании часовых поясов см. NSTimeZone .
Например, чтобы создать дату с использованием вездесущего формата «2011-01-16 00:00» в UTC, вы должны сделать:
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
// Only certain abbreviations are okay, like UTC. See docs for more info
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDate* midnight_26_jan_2011_utc = [formatter dateFromString:@"2011-01-26 00:00"];
// this will display in your system locale
// (for me, it shows 2011-01-25 19:00 +0500 because I'm America/New_York time)
NSLog(@"date: %@", midnight_26_jan_2011_utc);
[formatter release];