昨天在Objective-c中获得NSDate

时间:2011-11-15 11:08:20

标签: objective-c cocoa-touch nsdate

我需要使用NSDate对象获取昨天的日期。 有什么想法吗?

编辑:已解决:

NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-86400];

2 个答案:

答案 0 :(得分:45)

试试这段代码。通过这种方式,您可以获得下一天,下个月,前几天,前几个月..

NSDate *now = [NSDate date];
int daysToAdd = -1;  

// set up date components
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setDay:daysToAdd];

// create a calendar
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];

NSDate *yesterday = [gregorian dateByAddingComponents:components toDate:now options:0];
NSLog(@"Yesterday: %@", yesterday);
[gregorian release];

答案 1 :(得分:9)

NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(60.0f*60.0f*24.0f)];

编辑:此解决方案不正确。请参阅Aadhiras答案以获得正确的解决方案。