如何在目标C中获取过去的日期?喜欢,
NSDate *pastDate = //some date 2 weeks ago
答案 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.