在这里感到困惑...我有两个日期,我通过 NSLog 来控制并获取:
日期是 2011-03-30 13:33:57 +0000 - 2011-03-28 13:33:57 +0000
一个日期显然比另一个晚...但是,在下面的代码中,我使用 [dateUSERPREFS laterDate:dateXML]
还是 [dateUSERPREFS earlierDate:dateXML 并不重要]
我在控制台中显示“we get first 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
的(带符号的)秒数。
关于objective-c - 无法比较两个 NSDates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893398/