iphone:NSDateFormatter如何以24小时格式显示时间?

时间:2011-08-24 11:05:10

标签: iphone objective-c ios nsdate nsdateformatter

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小时内得到结果

e.g。 20.15而不是晚上8:15

有没有更好的方法呢?

2 个答案:

答案 0 :(得分:25)

尝试设置

[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]];

答案 1 :(得分:4)

如果指定格式而不是使用NSDateFormatterShortStyle,则可以使用任何所需格式输出。例如:

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