使うクラス
- NSDate
- NSCalendar
- NSDateComponents
3日後の日付を得る
// 3日後
NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comp = [[NSDateComponents alloc] init];
comp.day = 3;
NSDate *result = [calendar dateByAddingComponents:comp toDate:date options:0];
NSLog(@"3日後: %@", result);
3日後: 2014-08-28 23:53:46 +0000
TimeZone
ちなみに上記の出力を見てみると、+0000
となっているのが分かります。
実は普通に計算すると「GMT(グリニッジ標準時間:日本と9時間差) の時刻」になってしまいます。
なのでローカルな時間に変換する必要があります。
それについては「NSDateの現在時刻を日本時間というかlocal時刻で」で書かれていました。
コードを引用させてもらうと、
NSDate* now = [NSDate dateWithTimeIntervalSinceNow:[[NSTimeZone systemTimeZone] secondsFromGMT]];
とすればいいようです。