这段代码比较了一个接一个创建的两个 NSDate
,并没有像我预期的那样进入 .OrderedSame
的情况。
import UIKit
let chosenDate = NSDate()
let currentDate = NSDate()
let formatter = NSDateFormatter()
formatter.dateFormat = "EEEE"
let day = formatter.stringFromDate(chosenDate)
var result = String()
switch chosenDate.compare(currentDate) {
case .OrderedSame:
result = "Today is a \(day)"
break
case .OrderedAscending:
result = "That was a \(day)"
break
case .OrderedDescending:
result = "That will be a \(day)"
break
}
print(result)
每当我在模拟器中运行它(在 Playground 上或[我将其从我的项目文件中拉到 Playground 上以测试东西])时,它都会给我“那是一个(在这里插入一天)而不是“今天是(在这里插入一天)。这是为什么?
最佳答案
chosenDate
和currentDate
的值不一样。如果打印日期值,您会发现它们不同,可能相差几毫秒。
如果你想检查days是否相同,你需要尝试NSCalendar
方法compareDate:toDate:toUnitGranularity:
您可以使用 NSCalendarUnitDay
来比较日期是否在同一天。
关于swift - 彼此相邻创建的两个 NSDates 比较不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830788/