NSPredicate filtered by year moth day

后端 未结 2 1855
攒了一身酷
攒了一身酷 2020-12-09 21:07

I use Core Data for storing my data model objects. Each object has NSDate property.

NSDate property has format like below:

2013-03-18 12:50:31 +0000
         


        
2条回答
  •  独厮守ぢ
    2020-12-09 21:07

    While David showed how you can create a predicate, i want to add a easier way to generate a date for 0:00

    NSDate *startDate = [NSDate date];
    NSTimeInterval lengthDay;
    
    [[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit 
                                    startDate:&startDate
                                     interval:&lengthDay 
                                      forDate:startDate];
    

    startDate now contain a date representing 0:00 for the current time zone of today

    NSDate *endDate = [startDate dateByAddingTimeInterval:lengthDay];
    

    Now we can put it into the predicate

    NSPredicate *daySpanPredicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date < %@)", startDate, endDate];
    

    Thanks to MartinR for the improvement.

提交回复
热议问题