Помните, NSDate выражает момент времени, независимый от часовых поясов, поэтому имеет смысл говорить только о части даты NSDate относительно определенного календаря и часового пояса.
Короткий ответ заключается в том, что вам нужно будет построить две NSDates: одну на 12:00 дня вашей даты и одну на 12:00 следующего дня, а затем настроить предикат для поиска дат между ними:
NSPredicate *firstPredicate = [NSPredicate predicateWithFormat:@"PropertyWithDate > %@", firstDate];
NSPredicate *secondPredicate = [NSPredicate predicateWithFormat:@"PropertyWithDate < %@", secondDate];
NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubPredicates:[NSArray arrayWithObjects:firstPredicate, secondPredicate, nil]];
Чтобы создать firstDate
и secondDate
, вам нужно использовать NSCalendar
components:fromDate:
и dateFromComponents:
методы. Если вы хотите использовать текущий календарь и часовой пояс устройства по умолчанию, вы можете просто использовать [NSCalendar calendar]
, чтобы получить календарь для использования.