2014-02-08 36 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:'。 –

相关问题