Core data 谓词无法获取属性类型为“的对象”;NSDate“;来自核心数据的对象
我从互联网收到的日期格式如下: “2014-12-01T20:00:00Z” 我正在核心数据中存储此格式的日期。属性类型也是“Nsdate”类型 使用获取[NSDate Date]的开始时间Core data 谓词无法获取属性类型为“的对象”;NSDate“;来自核心数据的对象,core-data,nsdate,nspredicate,nsdateformatter,nscalendar,Core Data,Nsdate,Nspredicate,Nsdateformatter,Nscalendar,我从互联网收到的日期格式如下: “2014-12-01T20:00:00Z” 我正在核心数据中存储此格式的日期。属性类型也是“Nsdate”类型 使用获取[NSDate Date]的开始时间 - (NSDate *)cc_dateByMovingToBeginningOfDay { unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | N
- (NSDate *)cc_dateByMovingToBeginningOfDay
{
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents* parts = [[NSCalendar currentCalendar] components:flags fromDate:self];
[parts setHour:0];
[parts setMinute:0];
[parts setSecond:0];
return [[NSCalendar currentCalendar] dateFromComponents:parts];
}
和[NSDate Date]的结束时间,使用:
- (NSDate *)cc_dateByMovingToEndOfDay
{
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents* parts = [[NSCalendar currentCalendar] components:flags fromDate:self];
[parts setHour:23];
[parts setMinute:59];
[parts setSecond:59];
return [[NSCalendar currentCalendar] dateFromComponents:parts];
}
用这个取景:
- (void)ObjectsFrom:(NSDate *)fromDate to:(NSDate *)toDate {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"((due_at > %@) AND (due_at < %@))",fromDate, toDate];
}
-(void)对象从:(NSDate*)从日期到:(NSDate*)到日期{
NSPredicate*谓词=[NSPredicate谓词格式:@“(到期日>%@)和(到期日<%@)”,fromDate,toDate];
}
但是记录总是零。正如我所知,在我今天的约会中,我在数据库中有多个记录。我不知道为什么会发生这种情况
我还使用了日期的NSComparisonResult,但日期之间没有记录
因此,请帮我解决这个问题。您的日期格式错误。“2014-12-01T20:00:00Z”中的“Z”是“ISO8601时区格式”,需要日期格式中的“ZZZZ”:
[formatter setDateFormat:@"yyyy'-'dd'-'MM'T'HH':'mm':'ssZZZZZ"];
否则,dateFromString:
将返回nil
看
更多信息。我用这种方法做了一个比较结果,但也失败了。。静态BOOL是介于决定性(NSDate*date,NSDate*begin,NSDate*end){return[date compare:begin]!=传感器解除搜索和[date compare:end]!=传感器解除搜索;}
[formatter setDateFormat:@"yyyy'-'dd'-'MM'T'HH':'mm':'ssZZZZZ"];