Используйте следующее решение
NSString *str = @"3/15/2012 9:15 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"MM/dd/yyyy HH:mm a";
NSDate *date = [formatter dateFromString:str];
NSLog(@"%@", date);
Edit:
Извините, формат должен быть следующим:
formatter.dateFormat = @"MM/dd/yyyy hh:mm a";
И показанное время будет временем по Гринвичу. Так что если вы добавите / вычтете часовой пояс, это будет 9:15 вечера.
Редактировать: # 2
Используйте как показано ниже. Вы бы тоже получили точное время.
NSString *str = @"3/15/2012 9:15 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"MM/dd/yyyy hh:mm a";
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
formatter.timeZone = gmt;
NSDate *date = [formatter dateFromString:str];
NSLog(@"%@",date);