首页 > 解决方案 > 使用“==”运算符时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)

谁能指出为什么日期可能不相等?因为我已经花了很多时间对此进行调试,但仍然没有解决方案

标签: core-datansdatenspredicatefoundation

解决方案


推荐阅读