Tuesday, April 2, 2013

日付を取得・比較

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateFormat  = @"yyyy/MM/dd";
    NSString *str = [df stringFromDate:[NSDate date]];


時刻も取得したいときは
df.dateFormat = @"yyyy/MM/dd HH:mm:ss";
以上!

追加:NSStringとNSDateの変換

NSDate → NSString

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    
    NSString *dateString = [formatter stringFromDate:date];

NSString → NSDate

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    
    NSString *dateString = @"2012-03-23";
    
    NSDate *dateDate = [formatter dateFromString:dateString];


今回はこちらを参照→http://plaza.rakuten.co.jp/hiroymyan/diary/201004070001/

日付を比較

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [[NSDateComponents alloc]init];
    
    components.year = 2013;
    components.month = 10;
    components.day = 3;
    
    NSDate *date = [calendar dateFromComponents:components];

    NSComparisonResult result = [date compare:[NSDate date]];
    if (result != NSOrderedDescending) {
        return YES;
    } else {
        return NO;
    }

NSOrderedDescendingのほかにNSOrderedSame, NSOrderedAscendingがある。
参考→ 年や日などを指定して NSDate を作成する
参考→objective-Cでの日付の比較について

過去の日付を取得


// 5日前のNSDateを取得
[NSDate dateWithTimeIntervalSinceNow:-5*24*60*60]; 


No comments:

Post a Comment