Im trying to compare two dates along with time (which are in format ISO8601). I've implemented below logic but the object returns nil(this will not take care of time which I need). Please advice what needs to done
eg: when two dates "2017-01-25T01:00:00.00" and "2018-01-25T01:00:00.00"is compared, it should return true (i.e., secondDate > firstDate) taking time into consideration
//Date Formatter
let dateFormatter = DateFormatter()
let dateFormatString = "2017-01-25T01:00:00.00"
dateFormatter.dateFormat = dateFormatString
dateFormatter.calendar = Calendar(identifier: Calendar.Identifier.iso8601)
dateFormatter.locale = Locale(identifier: "en_EN_POSIX")
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
//Get Dates from ISO8601 format
var dateString: Date?
var dateFromAPI: Date?
//Date from string value (defaultFirstDate is string value)
if let firstDate = defaultFirstDate, let truncatedDate = firstDate.components(separatedBy: "T").first{
//Issue is with below line - it returns nil
dateString = dateFormatter.date(from: truncatedDate)
}
if let secondDate = defaultSecondDate, let truncatedDate = secondDate.components(separatedBy: "T").first {
//Issue is with below line - it returns nil
dateFromAPI = dateFormatter.date(from: truncatedDate)
}
if let date1 = dateString, let date2 = dateFromAPI, date1.compare(date2) == ComparisonResult.orderedAscending {
showPage = true
}