我正在尝试以10:00, 23:00, 1:00, 9:00
等形式转换来自该数据库的时间。
我有两个字符串:
NSString *timeFrom = @"10:00";
NSString *timeTo = @"18:00";
我希望在应用程序中以以下格式显示它们: 10:00AM - 6:00PM
.我为此使用 NSDateFormatter,但没有得到正确的结果。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm"];
NSDate *timeFromDateWithFormatter = [dateFormatter dateFromString:timeFrom];
NSDate *timeToDateWithFormatter = [dateFormatter dateFromString:timeTo];
我正在寻找NSDateFormatter中的一个功能,该功能将转换为"标准"时间并相应地添加AM/PM。 但是,此代码会导致timeFromDateWithFormatter
具有值 2000-01-01 15:00:00 +0000
并且timeToDateWithFormatter
在此代码运行后为 nil。
您想从H:mm
转换为h:mma
。为此,您需要两种日期格式。
NSDateFormat *oldFormatter = [[NSDateFormatter alloc] init];
oldFormatter.dateFormat = @"H:mm"; // The old format
NSDateFormat *newFormatter = [[NSDateFormatter alloc] init];
newFormatter.dateFormat = @"h:mma"; // The new format
NSString *timeFrom = @"10:00";
NSString *timeTo = @"18:00";
NSDate *dateFrom = [oldFormatter dateFromString:timeFrom];
NSString *newTimeFrom = [newFormatter stringFromDate:dateFrom];
NSDate *dateTo = [oldFormatter dateFromString:timeTo];
NSString *newTimeTo = [newFormatter stringFromDate:dateTo];
NSLog(@"old times: %@ - %@", timeFrom, timeTo):
NSLog(@"new times: %@ - %@", newTimeFrom, newTimeTo):
这将给出输出:
旧时光: 10:00- 18:00
新时间:上午10:00 - 下午6:00