2011-04-06 90 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