Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何比较两个有日期的NSString_Iphone_Nsstring_Comparison_Nsdate - Fatal编程技术网

Iphone 如何比较两个有日期的NSString

Iphone 如何比较两个有日期的NSString,iphone,nsstring,comparison,nsdate,Iphone,Nsstring,Comparison,Nsdate,我有两个NSString,它们有日期,我想要,如果它们都有相同的数据,那么如果应该工作,否则应该工作 这是我的密码 NSString*test=data.addedDateTime; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy_MM_dd"]; NSDate* date = [NSDate date];

我有两个NSString,它们有日期,我想要,如果它们都有相同的数据,那么如果应该工作,否则应该工作

这是我的密码

     NSString*test=data.addedDateTime;



    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy_MM_dd"];

    NSDate* date = [NSDate date];

    NSString* str = [formatter stringFromDate:date];
    NSString*addedDateTime=str;



    if ([test isEqualToString:str]) {


        [todayArray addObject:theObject];

        int count=[todayArray count];

        NSLog(@"Today array working %d",count);


    }

    else {

        [yesterdayArray addObject:theObject];

    }

当我使用NSLog检查的两个值相同时,我的代码总是以其他方式运行。如果日期不相等或格式不相同,则不要比较两个表示日期的NSString,而是两个NSDate。所以不要用这个。
first u should convert date to nsstring..
then u set perfect date formate in both string..
like
 NSDate *today1 = [NSDate date];
  NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"dd-MM-yyyy"];
  NSString *dateString11 = [dateFormat stringFromDate:today1];
  [dateString11 retain];
ur first string is like dateString11

and other date string is like str2=@"03-10-2010";

then u compare two string

 if ([dateString11 isEqualToString:str2]) {


        [todayArray addObject:theObject];

        int count=[todayArray count];

        NSLog(@"Today array working %d",count);


    }
使用
NSDateComponent
比较两个日期,或将其作为@Andrey Gordeev进行比较
说明。

首先将字符串转换为日期,并使用此
[date1 isEqualToDate:date2]
。这是一个两个日期的比较

使用此代码我希望此代码对您有用

 NSString*test=data.addedDateTime;



    NSDateFormatter* df = [[NSDateFormatter alloc] init];
            [df setDateFormat:@"yyyy_MM_dd"];
            NSDate* d = [df dateFromString:test];
            [df release];

    NSDate* date = [NSDate date];


    if ([d isEqualToDate:date) {


        [todayArray addObject:theObject];

        int count=[todayArray count];

        NSLog(@"Today array working %d",count);


    }

    else {

        [yesterdayArray addObject:theObject];

    }

而不是比较字符串比较日期。像这样,

NSDate *myDate1 =data.addedDateTime;
NSDate* mydate2 = [NSDate date];

if ([myDate1 compare:mydate2] == NSOrderedDescending) {
    NSLog(@"Dilip myDate1 is later than myDate2");

} else if ([myDate1 compare:mydate2] == NSOrderedAscending) {
    NSLog(@"Dilip myDate1 is earlier than myDate2");

} else {
    NSLog(@"Dilip dates are the same");

}

请尝试此代码以进行日期之间的任何比较。。。不应以字符串形式比较日期。比较转换为字符串之前的日期。使用格式化程序的
dateFromString
函数将字符串“test”转换为日期格式,方法是将确切的日期格式指定为测试的日期格式。然后使用以下函数比较日期

NSString*test=data.addedDateTime;
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy_MM_dd"];

NSDate *newDate = [formatter dateFromString:data.addedDateTime]; // other date 
NSDate *today = [NSDate date]; // current date

NSComparisonResult result; 

result = [today compare:newDate]; // comparing two dates

if(result == NSOrderedSame)
    {
    [todayArray addObject:theObject];

    int count=[todayArray count];

    NSLog(@"Today array working %d",count);
}
else
    {

    [yesterdayArray addObject:theObject];

    }

-[\uu NSDate length]:发送到实例的选择器无法识别0x5b54ac0@JawAli检查我的答案现在我已经编辑了它..很抱歉在午休时迟了答复..现在我已经测试了代码,它运行得很好..如果仍然出现错误,请检查
数据。addedDateTime
是否有效。
NSString*test=data.addedDateTime;
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy_MM_dd"];

NSDate *newDate = [formatter dateFromString:data.addedDateTime]; // other date 
NSDate *today = [NSDate date]; // current date

NSComparisonResult result; 

result = [today compare:newDate]; // comparing two dates

if(result == NSOrderedSame)
    {
    [todayArray addObject:theObject];

    int count=[todayArray count];

    NSLog(@"Today array working %d",count);
}
else
    {

    [yesterdayArray addObject:theObject];

    }