我有一个字符串——时间、开始、结束:格式为“hh:mm”
例如,“21:00”。 我需要比较 - “时间”介于开始和结束之间 如果 End < Start,例如 ("21:10""10:00") 应视为:从'开始'到第二天'结束'。
我无法将像@"23:00"这样的 NSSTring 转换为 NSDate,然后我需要比较... :(
感谢您的建议;)
最佳答案
您可以将 HH:mm
类型的字符串转换为 NSDate
。如果 endDate
小于 startDate
,则向其添加一天。
NSString *dateString = @"23:00";
NSString *startString = @"21:00";
NSString *endString = @"10:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm";
NSDate *date = [formatter dateFromString:dateString];
NSDate *startDate = [formatter dateFromString:startString];
NSDate *endDate = [formatter dateFromString:endString];
if ([endDate compare:startDate] == NSOrderedAscending) {
endDate = [endDate dateByAddingTimeInterval:24*3600];
}
if ([startDate compare:date] == NSOrderedAscending && [date compare:endDate] == NSOrderedAscending) {
NSLog(@"Date %@ is in the interval [%@, %@]", dateString, startString, endString);
} else {
NSLog(@"Date %@ is not in the interval [%@, %@]", dateString, startString, endString);
}
附言。我假设这里使用的是 ARC。
关于iphone - 来自 NSString 的 NSDate,如 HH :mm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761547/