ios - 按核心数据中的日期组件获取条目

标签 ios swift date core-data nsfetchrequest

我想按单个日期组件(例如月=12)过滤数据库中的条目。请注意,我无法查询日期在固定日期之间的条目,因为年份可能不同。

它应该看起来/工作起来像这样:

let request = NSPredicate(format: "date.month=%i", 12)

最佳答案

您必须为谓词使用时间间隔。

NSPredicate(format: "date >= %@ && date < %@", aDate, aDate.date(byAddingMonths:1))

请注意,您可能在问题中将 NSFetchRequestNSPredicate 混淆了。

要添加月份:

extension Date {
   func date(byAddingMonths months: Int) -> Date {
       var diff = DateComponents()
       diff.month = months
       return Calendar.current.date(byAdding: diff, to: self)!
   }
}

编辑

澄清问题后,您似乎需要一个月份属性。向您的实体添加一个 Int 属性,每当您更改日期时,该属性都会自动填写月份(覆盖 didSet)。以下是从日期获取月份的方法:

let month = Calendar.current.component(.month, from:theDate)

关于ios - 按核心数据中的日期组件获取条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40960026/

相关文章:

android - 在没有应用商店和市场的情况下安装 ios 和 android 应用程序的最佳方法是什么?

perl - 如何在 Perl 中回溯月份并考虑一个月中的不同日期?

php - 用PHP代码移动托管服务后出现错误

php - 使用 strtotime 将 date() 格式化为 AM/PM

iOS Admob 网络中介 : Duplicate Symbols Error With all_load and ObjC

ios - 将歌曲从 ios 音乐库保存到文档目录

ios - 使用 AutoLayout Storyboard 更改 iPhone 屏幕尺寸的 ImageView 大小

ios - 尝试将 NSLayoutDimension 转换为 CGFloat 时出错

swift - :Cannot convert value of type 'PFArrayResultBlock'

swift - 按多个数组条件过滤