Часовой пояс / локаль, возможно, не должны входить в это.Я мог бы неправильно понять, но похоже, что вы просто пытаетесь взять строку в формате ЧЧмм и рассчитать общее количество минут.
Если вам по какой-то причине все еще нужно использовать NSDate, это может сработать:
+ (int)totalMinutesFromHHmm:(NSString*)HHmm
{
NSString* refHHmm = @"0000";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HHmm"];
NSDate* refDate = [dateFormatter dateFromString:refHHmm];
NSDate* date = [dateFormatter dateFromString:HHmm];
int minutes = [date timeIntervalSinceDate:refDate] / 60;
return minutes;
}
В противном случае это может быть более простой вариант, поскольку вы знаете, что у вас будет 4-символьная строка, представляющая часы и минуты:
+ (int)totalMinutesFromHHmm:(NSString*)HHmm
{
int minutes = [[HHmm substringWithRange:NSMakeRange(0, 2)] intValue] * 60;
minutes += [[HHmm substringWithRange:NSMakeRange(2, 2)] intValue];
return minutes;
}