我有一个NSDate,时间分量清零了。
我在NSArray的每个对象中都有一个NSDate成员。
我想使用NSPredicate过滤出一组对象,以仅保留与我要过滤的日期匹配的对象。
要注意的是:对象中的日期字段具有时间组件,我需要在那里。
如何在我只匹配日期部分而不匹配时间的地方形成谓词格式字符串。
我已经制作了一个静态实用程序方法,该方法接受一个日期,并给出一个时间分量为零的日期。
我可以在谓词字符串中使用此方法来转换该日期然后进行比较吗?
这是代码:
NSDate *startingDate = [MyUtilities dateByRemovingTimeFromDate:self.currentEvent.associatedEvent.startDate];
NSDate *filterDate = [MyUtilities dateByAddingDays:_selectedRow toDate:startingDate];
NSArray *filteredArray = nil;
filteredArray = [_eventsList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"displayDate == %@",filterDate]];
我可以使用的方法dateByRemovingTimeFromDate
:的MyUtilities
,我在里面做predicate string
的displayDate
?
您可以创建一个具有日期范围的谓词,因此无需比较时间(或修改时间),只需计算日期范围的开始和结束(然后使用>=
开始日期和<=
结束日期)即可。
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"displayDate >= %@ AND displayDate <= %@", filterDate, nextDateAfterfilterDate];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句