我在字符串中有24格式的时间,例如@“22:00”我想将此时间转换为@“10:00 pm”所以我写下面的代码:
NSDateFormatter *df=[[NSDateFormatter alloc]init];
[df setDateFormat:@"HH:mm"];
NSDate *date= [df dateFromString:@"22:00"];
[df setDateFormat:@"hh:mm a"];
NSLog(@"%@",[df stringFromDate:date]);
不幸的是结果仍然是@“22:00”。
问题是如何将24格式的时间转换为12格式?
答案 0 :(得分:1)
你真的不需要NSDateFormatter
,因为这是一个简单的数学问题:
NSString *time24 = @"24:00";
NSArray *elements = [time24 componentsSeparatedByString:@":"];
NSAssert([elements count] == 2, @"Expected 2 time elements"];
NSInteger hour = [elements[0] intValue];
NSInteger minutes = [elements[1] intValue];
NSString *time12 = [NSString stringWithFormat:@"%02d:%02d %@",
hour % 12, minutes, (hour >= 12 ? @"PM" : @"AM")];