文字列から日時を生成したい

// 文字列から日時を生成する
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [formatter dateFromString:@"2010-7-8 13:14"];
NSLog(@"Date: %@", date);

日時をフォーマット出力したい

// 日時をフォーマット出力する
// 書式はここ http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
NSDate *now = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd(E) HH:mm:ss"];
NSString *result = [formatter stringFromDate:now];
NSLog(@"Now: %@", result);

n日後の日時を求めたい

// n日後の日時をもとめる
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *now = [NSDate date];

NSDateComponents *sevenDays = [[NSDateComponents alloc] init];
[sevenDays setDay:7];

NSDate *sevenDaysLater = [calendar dateByAddingComponents:sevenDays toDate:now options:0];

NSLog(@"seven days later: %@", sevenDaysLater); // => seven days later: 2010-04-11 22:45:55 

ふたつの日時の差を求めたい(日時分)

// ふたつの日時の差をもとめる(日時分のみ)
NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *comps1 = [[NSDateComponents alloc] init];
[comps1 setYear:2010];
[comps1 setMonth:4];
[comps1 setDay:5];
[comps1 setHour:10];
[comps1 setMinute:30];
NSDate *date1 = [calendar dateFromComponents:comps1];

NSDateComponents *comps2 = [[NSDateComponents alloc] init];
[comps2 setYear:2010];
[comps2 setMonth:4];
[comps2 setDay:6];
[comps2 setHour:12];
[comps2 setMinute:45];
NSDate *date2 = [calendar dateFromComponents:comps2];

NSDateComponents *diff = [calendar components:(NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:date1 toDate:date2 options:0];

NSLog(@"Day: %d Hour: %d Minute: %d", [diff day], [diff hour], [diff minute]); // => Day: 1 Hour: 2 Minute: 15