2014-02-08 47 views
-1

這裏我列出了我格式化的日期列表,並且我希望當天和日期一致,因此我減少了currentNow爲當前日期創建的變量。測試日期列表是否現在小於日期

所以我想顯示日期下的日期。

所以我這樣做,但它不工作,我不知道如果沒有測試日期是否遜色於當前日期

//format date now 
    NSDateFormatter *currentNow = [[NSDateFormatter alloc] init]; 
    [currentNow setDateFormat:@"d/MM/yyyy"]; 
    NSString *stringCurrentNow = [currentNow stringFromDate:now]; 

最新測試

// date test 
    NSDateFormatter *dateTest = [[NSDateFormatter alloc] init]; 
    [dateTest setDateFormat:@"d/MM/yyyy"]; 
    NSString *stringdateTest = [dateTest stringFromDate:date]; 

的方法我測試

if(stringdateTest > stringCurrentNow){ 
     NSLog(@"not pass =>%@",stringCurrentNow); 
}else{ 
     NSLog(@"the date has already passed => %@",stringdateTest); 
} 

但它不起作用,他告訴我日期已經發生,當我看在結果日期是在兩週內,所以我的測試不起作用或者當我沒有使用正確的方法。

預先感謝您

+1

你有沒有通過任何遠程機會諮詢NSDate的文檔? –

+1

你是否會想到,即使你可以使用'>'來比較字符串指針(你不能),那麼d/MM/yyyy順序中的日期會不正確地整理? –

回答

2
  1. 使用><==,等你最終會比較指針地址不能比較的對象和對象的地址沒有任何關係,其價值或排序順序。
  2. 有意義的地方,NSObject的子類支持compare:方法,該方法以相對順序的有意義的方式比較相似類的兩個對象。所有NSObject子類支持isEqual:
  3. The documentation for NSDate describes compare: is even more detail
  4. 如果您想比較字符串日期而不是NSDates,則需要以有意義的順序獲取日期,並以最重要的數字(年份)開頭。例如,yyyyMMdd。並注意你應該使用固定寬度的字段(因此「dd」而不是「d」),否則你會得到一些非常特殊的排序順序。當然,比較字符串時需要使用NSString的compare:版本。
+0

*「NSObject的所有子類都支持compare:方法」* - 您確定嗎? –

+0

@MartinR - 是的,我猜所有對象都支持'isEqual:',但不一定是'compare:'。 –

相關問題