【发布时间】:2014-09-18 06:40:27
【问题描述】:
我正在比较两个名为 serverDate 和 localDate 的 NSDate。尽管两个日期的输出时间相同,但我仍然认为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 仍被视为较近的日期。
我做错了什么?感谢您的意见。
【问题讨论】:
-
NSLog(@"%f, %f", [serverDate timeIntervalSinceReferenceDate], [localDate timeIntervalSinceReferenceDate])注销后会得到什么。 -
好电话@KudoCC!当我注销它时,我分别得到两个日期的
432714002.509000, 432714002.508961。我想如果有一种方法可以将最接近的 1/10 秒舍入,那将是最好的解决方案。 -
你也不需要
else if,因为else会产生同样的效果。 -
关于
else if确实如此。将更改代码。