0

私は日付を持つ2つの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を使用してチェックした両方に同じ値がある場合、常に実行されます

4

7 に答える 7

1

NSString日付を表す2 つの を比較するのではなく、代わりに2 つの を比較しますNSDate

于 2013-06-28T07:48:31.037 に答える
0

日付間の比較には、このコードを試してください...日付を文字列の形式で比較しないでください。文字列に変換する前の日付を比較します。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];

    }
于 2013-06-28T08:32:29.070 に答える