如何在NSPredicate中忽略时间?

时间:2014-07-27 19:31:43

标签: ios objective-c nspredicate

我的班级有一个名为date_time的日期时间字段。 在下面的循环中,我希望找到所有具有相同日期的实例,其中时间将被忽略。

for (int day=0; day < days.length; day++) {
     [components setDay:day];
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date_time == %@", [cal dateFromComponents:components]];

}

上面的谓词不起作用,因为date_time也包含时间。 有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

我认为这对你有用:

[components setDay:day];
NSDate *dateFromComponents = [cal dateFromComponents:components];
NSDate *nextDayDate = [NSDate dateWithTimeInterval:24.0*60.0*60.0
                                            sinceDate:dateFromComponents];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date_time >= %@ && date_time < %@",
                              dateFromComponents, nextDayDate] ;