我应该如何在Objective C中找到过去的日期?

时间:2011-12-07 11:26:38

标签: objective-c

如何在目标C中获取过去的日期?喜欢,

NSDate *pastDate = //some date 2 weeks ago

3 个答案:

答案 0 :(得分:6)

离开我的头顶:

NSDate *today = [NSDate date];
NSDateComponents *dc = [[[NSDateComponents alloc] init] autorelease];
[dc setDay:-14];
NSCalendar *cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *pastDate = [cal dateByAddingComponents:dc toDate:today  options:0];

答案 1 :(得分:3)

NSDate *today = [NSDate date];
NSLog(@"today:    %@",today);

NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setWeek:-2];
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDate *pastDate = [currentCalendar dateByAddingComponents:dateComponents toDate:today  options:0];
NSLog(@"pastDate: %@",pastDate);

NSLog输出:

today:    2011-12-07 11:52:15 +0000
pastDate: 2011-11-23 11:52:15 +0000

此示例使用ARC。

答案 2 :(得分:-1)

假设您不关心DST,

NSDate* pastDate = [NSDate dateWithTimeIntervalSinceNow:-2*7*24*60*60];

// Get the date which is exactly 2 weeks (14 days) ago.