【发布时间】:2015-08-23 19:20:45
【问题描述】:
我正在尝试比较两个 NSDate 以了解它们是否在同一天。这是两个日期(第二个总是当前日期,NSDate()):
2015-08-23 22:00:00 +0000 2015-08-23 19:13:45 +0000
日期显然是在同一天,因为 23 = 23。但是我似乎无法在代码中确定这一点。我试过了:
1)
let date = tripObject["tripDate"] as! NSDate
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let str = dateFormatter.stringFromDate(date)
let date2 = NSDate()
let dateFormatter2 = NSDateFormatter()
dateFormatter2.dateFormat = "yyyy-MM-dd"
let str2 = dateFormatter2.stringFromDate(date2)
println(". \(str) and \(str2) .")
这给出了 2015-08-24 和 2015-08-23
2)
let dateComponents = NSCalendar.currentCalendar().components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: tripObject["tripDate"] as! NSDate)
let dateComponents2 = NSCalendar.currentCalendar().components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: NSDate())
这给出了不同的一天组成部分。
3)
if NSCalendar.currentCalendar().isDate(firstDate!, inSameDayAsDate: secondDate!){
4)
if NSCalendar.currentCalendar().isDateInToday(the NSDate) {
3 和 4 都失败了。
我完全迷路了,有什么想法吗?
【问题讨论】:
-
使用 NSCalendar.currentCalendar().startOfDayForDate(date) 获取一天的开始日期和使用比较方法
-
失败是什么意思?日期中的时间是几点?