我正在比较两个名为serverDate
和localDate
的NSD。尽管两个日期输出都是同一时间,但我仍然认为serverDate
显示的时间比localDate
更新。
这是我的比较代码:
if ([serverDate timeIntervalSinceReferenceDate] > [localDate timeIntervalSinceReferenceDate]) {
NSLog(@"server date more recent");
} else if ([serverDate timeIntervalSinceReferenceDate] <= [localDate timeIntervalSinceReferenceDate]){
NSLog(@"local date more recent");
}
我使用非常精确的NSDateFormatter
将日期显示为"yyyy-MM-dd HH:mm:ss:SSSSSSSSSSZ"
,输出以下内容:Server date: 2014-09-17 23:20:02:5090000000-0700, local date: 2014-09-17 23:20:02:5090000000-0700
。但即便如此,serverDate
仍被视为最近的约会。
我做错了什么?感谢您的投入。
答案 0 :(得分:2)
您不应该使用NSimeIntervell
作为NSDate
Compare
功能用于比较日期使用compare
功能
if ([serverDate compare:localDate ] == NSOrderedDescending) {
NSLog(@"serverDate is later than localDate");
} else if ([serverDate compare:localDate] == NSOrderedAscending) {
NSLog(@"serverDate is earlier than localDate");
} else {
NSLog(@"dates are the same");
}
希望这有帮助
答案 1 :(得分:1)
这将有助于你为我工作
if ([serverDate isEqualToDate: localDate])
{
NSLog(@"Date are same");
}else
{
NSLog(@"Date are not equal")
}