我正试图在swift中搜索两个日期之间的记录。 我存储如下图所示日期:使用核心数据在两个日期之间提取记录ios swift
let date = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd HH':'mm':'ss"
println(date) // prints 2015-09-26 05:22:41 +0000
myreport.setValue(date, forKey: "date")
而下面是我的代码使用来获取两个日期之间的记录NSPredicate:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let startDate:NSDate = dateFormatter.dateFromString(fromdate)!
let endDate:NSDate = dateFormatter.dateFromString(todate)!
println(fromdate) // prints 2015-09-22
println(todate) // prints 2015-09-29
println(startDate) // prints 2015-09-21 20:00:00 +0000
println(endDate) // prints 2015-09-28 20:00:00 +0000
let predicate1 = NSPredicate(format: "%@ >= date AND %@ <= date", argumentArray: [startDate, endDate])
let predicate = NSCompoundPredicate(type: NSCompoundPredicateType.OrPredicateType, subpredicates: [predicate1])
// Set the predicate on the fetch request
request.predicate = predicate
request.sortDescriptors = [NSSortDescriptor(key: "report_id", ascending: false)]
var results : NSArray = context.executeFetchRequest(request, error: nil)!
注:
1)我没有fromdate并在此格式是这种格式2015-09-25(as字符串)
2)我的日期属性的核心数据中的数据类型是NSDate
3)我能够存储并当我运行上面的代码林没有得到任何错误,但代码不被两个日期之间的搜索记录获取从核心数据成功
的日期。我的意思是我得到空结果数组。
任何一个PLZ可以告诉我什么即时做错在这里。 如果还需要更多信息,请通知我。提前致谢!
我认为这可以帮助你http://stackoverflow.com/questions/15831600/core-data-predicate-date-comparison –