core-data - 使用“==”运算符时NSDate比较失败
问题描述
我正在使用运算符“==”比较两个日期,即使两个日期相同,表达式也会返回 false
这是我进行比较的方法:
date1 == date2 // this returns false
date1 < date2 // this returns true
但是,如果我对日期进行以下检查,它将返回True
date1.timeIntervalSince1970 == date2.timeIntervalSince1970 // returns true
即使日历检查粒度设置为纳秒也返回 true
Calendar.current.isDate(date1, equalTo: date2, toGranularity: .nanosecond) // this also returns true
所以我想知道为什么比较运算符返回false。
对于上下文: 我正在尝试使用以下谓词在核心数据记录中查找特定日期:
fetchRequest.predicate = NSPredicate(format: "rawDate = %@", extractedDate as NSDate)
谁能指出为什么日期可能不相等?因为我已经花了很多时间对此进行调试,但仍然没有解决方案
解决方案
推荐阅读
- macos-catalina - /System/Volumes/Data 在 Mac OS Catalina 上占用了太多空间
- kubernetes - 注册新的 istioctl 配置文件
- r - 日期和国家的 PCA
- python - 有什么方法可以将保存在 gdrive 上的 .xlsx 导入到带有 python 的 gsheet 中?
- python - 使用关键字参数 '{'pk': ''}' 反转'remove'
- git - git status 将未修改的文件显示为已修改,并且 git diff 无法对它们进行哈希处理
- javascript - 我无法从 axios 请求返回响应
- delphi - 在 C++ Builder 中搜索没有可视组件的内存中的文本
- amazon-web-services - AWS 可以接受从休眠状态到请求的延迟是多少?
- xamarin - Xamarin 项目中 Xamarin.iOS 和 Xamarin.Android 的 IF 条件