我在核心数据中保存了这样的日期值(属性saveDate):
2020-11-09 06:12:17 +0000
现在我想获取所有数据,其中日期的年份为当前年份(2020年) 我的第一个尝试是这个方向:
let date = Date()
let currentYear = Calendar.current.component(.year, from: date)
fetchRequest.predicate = NSPredicate(format: "saveDate == %@", currentYear)
但这在逻辑上不起作用。 但是我如何才能实现“谓语情况”?
谢谢!
答案 0 :(得分:0)
仅获取今年的开始日期和明年的开始日期,并检查日期是否在它们之间:
let calendar = Calendar.current
let currentYear = calendar.dateComponents([.year], from: Date())
let startOfThisYear = calendar.date(from: currentYear)!
let nextYear = DateComponents(year: currentYear.year! + 1)
let startOfNextYear = calendar.date(from: nextYear)!
// create the predicate like this:
NSPredicate(format: "saveDate >= %@ AND saveDate < %@", argumentArray: [startOfThisYear, startOfNextYear])