无法比较两个NSDates

say*_*guh 0 objective-c nsdate ios

在这里感到困惑...我有两个日期,我NSLog控制和获取:日期是 2011-03-30 13:33:57 +0000 - 2011-03-28 13:33:57 +0000

一个日期明显晚于另一个......但是,在下面的代码中,如果我使用[dateUSERPREFS laterDate:dateXML]或者[dateUSERPREFS earlierDate:dateXML]在控制台中显示"我们得到第一个IF" 并不重要?

有任何想法吗?谢谢,

NSDate *dateXML = [df dateFromString:last_modifiedXML];
NSDate *dateUSERPREFS = [df dateFromString:last_modifiedUSERPREFS];

NSLog(@"dates are %@ - %@", dateXML, dateUSERPREFS);

if ([dateUSERPREFS laterDate:dateXML]) {        
    NSLog(@"we get first IF");
}
Run Code Online (Sandbox Code Playgroud)

yuj*_*uji 12

[aDate laterDate:anotherDate]返回一个NSDate,而不是一个BOOL.具体来说,它返回两个日期中的较晚者.

您想要使用compare::

NSComparisonResult comparisonResult = [dateUSERPREFS compare:dateXML];
if (comparisonResult == NSOrderedAscending) {
    // case where dateUSERPREFS is before dateXML
} else if (comparisonResult == NSOrderedSame) {
    // both dates are the same
} else if (comparisonResult == NSOrderedDescending) {
    // this could have just been a plain else; dateUSERPrefs after dateXML
}
Run Code Online (Sandbox Code Playgroud)

或者,你可以使用[dateUSERPREFS timeIntervalSinceDate:dateXML]它给你秒(签字)数量从dateXMLdateUSERPREFS.