迅速5-谓词今年的日期

时间:2020-11-09 06:24:03

标签: swift

我在核心数据中保存了这样的日期值(属性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)

但这在逻辑上不起作用。 但是我如何才能实现“谓语情况”?

谢谢!

1 个答案:

答案 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])