在这里感到困惑...我有两个日期可供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]
,它为您提供从dateXML
到dateUSERPREFS
的(带符号)秒数。