0

我有一个 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]];

我可以使用方法 dateByRemovingTimeFromDateMyUtilities我在里面做的predicate stringdisplayDate

4

1 回答 1

2

You can create a predicate with a date range so you don't need to compare the time (or modify it)m just calculate the start and end of the day range (then use >= the start date and <= the end date).


NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"displayDate >= %@ AND displayDate <= %@", filterDate, nextDateAfterfilterDate];
于 2013-07-18T12:27:44.700 回答