ios – 如何检查现在的日期是在9:00-18:00

当我的应用程序启动时,我想检查日期是否在9:00-18:00之间.

而现在我可以使用NSDate了.如何检查时间?

解决方法

这么多的答案和这么多的缺陷…

您可以使用NSDateFormatter从日期获取用户友好的字符串.但是使用该字符串进行日期比较是一个非常糟糕的主意!
请忽略涉及使用字符串的任何问题的答案

如果您想要获取有关日期年,月,日,时,分等信息,您应该使用NSCalendar和NSDateComponents.

为了检查日期是否在9:00至18:00之间,您可以执行以下操作:

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [calendar components:NSHourCalendarUnit fromDate:date];

if (dateComponents.hour >= 9 && dateComponents.hour < 18) {
    NSLog(@"Date is between 9:00 and 18:00.");
}

编辑:使用dateComponents.hour< = 18的Whoops将导致18:01之间的日期错误的结果. dateComponents.hour< 18是去的路. ;)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...