I am working on ios development and I find it really hard to check if two NSDates are from the same day. I tried to use this
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)
but it just checks if two NSDates has a difference of 24 hours. I think there is a way to make it work but still, I wish to have NSDate values before 2 am in the morning to be count as the day before, so I definitely need some help here. Thanks!
NSCalendar has a method that does exactly what you want actually!
/* This API compares the Days of the given dates, reporting them equal if they are in the same Day. */ - (BOOL)isDate:(NSDate *)date1 inSameDayAsDate:(NSDate *)date2 NS_AVAILABLE(10_9, 8_0);
So you'd use it like this:
[[NSCalendar currentCalendar] isDate:date1 inSameDayAsDate:date2];
Or in Swift
Calendar.current.isDate(date1, inSameDayAs:date2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With