- (void)viewDidLoad { [super viewDidLoad]; NSDateComponents *fromDateComponents = [[NSDateComponents alloc]init]; NSDateComponents *toDateComponents = [[NSDateComponents alloc]init]; [fromDateComponents setHour:6]; // 开始时间-小时 [toDateComponents setHour:18]; // 结束时间-小时 [toDateComponents setMinute:58]; // 结束时间-分钟 [self isBetweenFromDateComponents:fromDateComponents toComponents:toDateComponents]; }/** * 转化为系统当前地区时间 * * @param date 系统时间 * * @return 系统当前地区时间 */- (NSDate *)convertSystemLocationDate:(NSDate *)date{ NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSTimeInterval interval = [zone secondsFromGMTForDate:date]; return [date dateByAddingTimeInterval:interval];}/** * 获取当前时间是否在设置的某一个时间段内 * * @param fromComponents 开始时间 * @param toComponents 结束时间 * * @return BOOL */- (BOOL)isBetweenFromDateComponents:(NSDateComponents*)fromComponents toComponents:(NSDateComponents *)toComponents{ NSDate *fromDate = [self getCustomDateeWithDateComponents:fromComponents]; NSDate *toDate = [self getCustomDateeWithDateComponents:toComponents]; // 获取当前时间 NSDate *currDate = [NSDate date]; if ([[self convertSystemLocationDate:currDate] compare:fromDate]== NSOrderedDescending && [[self convertSystemLocationDate:currDate] compare:toDate] == NSOrderedAscending) { return YES; } return NO;}/** * 根据设置的时间返回一个NSDate类型的时间 * * @param dateComponents NSDateComponents * * @return NSDate */- (NSDate *)getCustomDateeWithDateComponents:(NSDateComponents *)dateComponents{ //获取当前时间 NSDate *currentDate = [NSDate date]; NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *currentComps = [[NSDateComponents alloc] init]; NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; currentComps = [currentCalendar components:unitFlags fromDate:currentDate]; //设置当天的某个点 NSDateComponents *resultComps = [[NSDateComponents alloc] init]; [resultComps setYear:[currentComps year]]; [resultComps setMonth:[currentComps month]]; [resultComps setDay:[currentComps day]]; [resultComps setHour:[dateComponents hour]]; [resultComps setMinute:[dateComponents minute]]; NSCalendar *resultCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDate *resultDate = [self convertSystemLocationDate:[resultCalendar dateFromComponents:resultComps]]; return resultDate;}