Iphone: NSDateFormatter, как показать время в формате 24 часа?

NSDateFormatter *formatter1=[[NSDateFormatter alloc]init];
[formatter1 setDateFormat:@"HHmmss MMddyyyy"];
NSDate *finalDate =[formatter1 dateFromString:testTime];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[lblpickUpTime setText:[formatter stringFromDate:finalDate]];
[formatter release];
[formatter1 release];

где testTime = @ "201518 07122011"; и я хочу получить результат за 24 часа

например. 20.15, а не 8:15 вечера

и есть ли лучший способ сделать это?

Ответ 1

Попробуйте установить

[formatter setDateFormat:@"HH:mm"];  // replacement for [formatter setTimeStyle:NSDateFormatterShortStyle];

Альтернативный метод (без использования каких-либо форматировщиков):

NSRange range;
range.location = 2;
range.length = 2;
NSString *dateString = [NSString stringWithFormat:@"%@:%@",[myString substringToIndex:2],[myString substringWithRange:range]];

Ответ 2

Если вы укажете формат вместо NSDateFormatterShortStyle, вы можете получить вывод в любом формате. Например:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];
[lblpickUpTime setText:[formatter stringFromDate:finalDate]];
[formatter release];