2011-04-06 56 views
0
OLD DATE: 2011-04-06 10:58:43 +0000 
NEW DATE: 2011-04-06 10:58:43 +0000 

我需要比较这两个日期。当比老更新时,这对我很重要。但我有问题,我的代码总是得到比较代码块。所以上面的日期示例与我的应用程序不同,但它们是相同的,我不明白我在这里得到错误的结果。这是代码:比较日期的问题 - NSDate

Something *existing; 

for(existing in exisingDatabaseItems) 
{ 
    Something *newFromWebService; 

    for(newFromWebService in WSArray) 
    { 
     if(existing.SomethingId == newFromWebService.SomethingId) 
     { 
      if([existing.LastModifiedOnDate compare:newFromWebService.LastModifiedOnDate] == NSOrderedAscending) 
      { 
       // It always get in here???       
       NSLog(@"OLD: %@", existing.LastModifiedOnDate); 
       NSLog(@"NEW: %@", newFromWebService.LastModifiedOnDate); 

       break; 
      } 
     } 
    } 
} 
+0

如果您将其中一个日期设置为其他值,代码是否会进入该块?例如:'existing.LastModifiedOnDate = newFromWebService.LastModifiedOnDate'? – Lepidopteron 2011-04-06 09:33:09

+0

这两个列表都填充了所有数据。然后我逐项比较。 – 1110 2011-04-06 09:35:11

回答

1

确保这些日期没有毫秒级组件;您的日志记录不显示完整的UTC。

+0

我看变量ind调试器,并没有毫秒。我以毫秒为单位从Web服务获取日期,但是在将其存储在对象中之前,我会格式化该日期。两个日期都以相同的方式形成。 – 1110 2011-04-06 09:36:40

+0

如果你打电话,你会得到什么... - (BOOL)isEqualToDate:(NSDate *)anotherDate – 2011-04-06 09:38:56

+0

我得到了'没有'的。 – 1110 2011-04-06 09:42:41