isEqualToDate と NSDateFommatter

2013年11月21日 Posted by PURGE

NSDate型に、時間が同じかどうかを判定するメソッドがある。
(BOOL)isEqualToDate:(NSDate *)anotherDate
しかし、当然のことながら、1秒でも数値が異なると、日付判定が異なってしまう。なので、NSString型で比較。

    NSDateFormatter *fmt = [[NSDateFormatter alloc]init];
    [fmt setDateFormat:@"yyyy/MM/dd"];
    NSString *currentDate = [fmt stringFromDate:[NSDate date]];
    NSString *tommorowDate = [fmt stringFromDate:[NSDate dateWithTimeIntervalSinceNow:60*60*8]];
    
    NSLog(@"現在:%@", currentDate);
    NSLog(@"明日:%@", tommorowDate);
    
    if ([currentDate isEqualToString: tommorowDate]) {
        NSLog(@"同日です。");
    }else{
        NSLog(@"同日ではありません。");
    }

ちなみに、NSString型同士で、== で比較すると falseとなります。

    if (currentDate == tommorowDate) {
        NSLog(@"同日です。%@", result);
    }else{
        NSLog(@"同日ではありません。%@", result);
    }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です