iphone - 来自 NSString 的 NSDate,如 HH :mm

标签 iphone objective-c ios

我有一个字符串——时间、开始、结束:格式为“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/

相关文章:

iphone - 关于核心数据中实体索引的问题

javascript - 使用 iPhone 上的 Safari 确定已安装的应用程序

ios - didBeginContact 不触发

jquery - 响应式设计菜单问题仅限 iPhone

iphone - UIImageJPEGRepresentation() 线程安全吗?

ios - 使用 ##__VA_ARGS__ 时 Xcode 编译器错误

ios - 如何在从主函数返回值之前等待委托(delegate)函数完成

iphone - NSString内置的方法来比较相似字符的数量

ios - 在同一个 NavigationController 下的两个 ViewController 之间翻转

javascript - 如何在 iOS 设备 (Safari) 中消除或限制滚动事件