为什么我对两个日期的比较不起作用?

Why my comparison of two dates doesn't work as it should?

我有两个日期(dateNSDate()),我想根据他们的日期进行比较。当我执行以下操作时:

println(NSDate())
println(date)
println(NSCalendar.currentCalendar().compareDate(date, toDate: NSDate(), toUnitGranularity: .DayCalendarUnit) == .OrderedSame)

我在输出中得到这个:

2015-04-27 04:16:49 +0000
2015-04-26 23:57:35 +0000
true

很明显(至少在输出上)天数不同,但 compareDate 方法说天数相同。

有人可以解释一下为什么吗?

当你输出一个日期时,不要使用简单的 println,它会给你伦敦的 date/time。相反,这样做:

println(date.descriptionWithLocale(NSLocale.currentLocale()))

这将使您更清楚地了解所涉及的日期时间,因为它与您所在的位置相对应。

如果你对你的日期这样做,你会发现它们实际上位于同一天。