TONY0922のブログ

学んだことを適当に記録していくブログです。主にRuby, Java, PHPで仕事してます。更新頻度はそんなに高くないので、ご了承下さい。

【Objective-C】翌日の指定時間のNSDateを取得する。

翌日の指定時間を取得したかったので、色々調べた結果 下記のような感じで書けそう。

NSDate* date = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *dateComps = [calendar components:NSYearCalendarUnit |
                               NSMonthCalendarUnit  |
                               NSDayCalendarUnit    |
                               NSHourCalendarUnit   |
                               NSMinuteCalendarUnit |
                               NSSecondCalendarUnit fromDate:date];
// 例)翌日の20:00を取得したい。
[dateComps setDay:(dateComps.day + 1)];
[dateComps setHour:20];
[dateComps setMinute:0];
[dateComps setSecond:0];

NSDate * notification_date = [calendar dateFromComponents:dateComps];
NSLog(@"date: %@", notification_date);
date: 2014-06-19 11:00:00 +0000