在这里感到困惑...我有两个日期可供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");
}

最佳答案

[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
}


或者,您可以使用[dateUSERPREFS timeIntervalSinceDate:dateXML],它为您提供从dateXMLdateUSERPREFS的(带符号)秒数。

08-17 15:34