Tôi đang làm việc về phát triển ios và tôi thấy thật khó để kiểm tra xem hai NSDates có từ cùng một ngày hay không. Tôi cố gắng để sử dụng nàyLàm thế nào để kiểm tra xem hai NSDates là từ cùng một ngày
fetchDateList()
// Check date
let date = NSDate()
// setup date formatter
let dateFormatter = NSDateFormatter()
// set current time zone
dateFormatter.locale = NSLocale.currentLocale()
let latestDate = dataList[dataList.count-1].valueForKey("representDate") as! NSDate
//let newDate = dateFormatter.stringFromDate(date)
let diffDateComponent = NSCalendar.currentCalendar().components([NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day], fromDate: latestDate, toDate: date, options: NSCalendarOptions.init(rawValue: 0))
print(diffDateComponent.day)
nhưng nó chỉ kiểm tra nếu hai NSDates có một sự khác biệt của 24 giờ. Tôi nghĩ rằng có một cách để làm cho nó hoạt động nhưng vẫn còn, tôi muốn có giá trị NSDate trước 2 giờ sáng vào buổi sáng để được tính là ngày hôm trước, vì vậy tôi chắc chắn cần một số trợ giúp ở đây. Cảm ơn!
Cập nhật nhỏ: Trong Swift 3.0 Xcode 8.2 Cú pháp:' if NSCalendar.current.isDate (date1, inSameDayAs: date2) == true) {// làm công cụ của bạn} ' – KuboAndTwoStrings
Có vẻ như không hoạt động cho các ngày cụ thể như' 2017-06-12T00: 00: 00.000Z' và '2017-06-12T23: 59: 59.999Z' ->" 23:59 : 59 "rơi vào ngày hôm sau do một số lý do (múi giờ của tôi là +2 và 21:59:59 hoạt động tốt). Dường như làm điều gì đó với múi giờ, nhưng tôi đã không tìm ra cách làm cho nó hoạt động. –
Đó có phải là chuyển đổi DST không? Nếu như vậy ngày đó chỉ có thể có 23 giờ. –