【发布时间】:2011-11-15 11:08:20
【问题描述】:
我需要使用 NSDate 对象获取昨天的日期。 有什么想法吗?
编辑:已解决:
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-86400];
【问题讨论】:
-
那我请你检查我的答案。
标签: objective-c cocoa-touch nsdate
我需要使用 NSDate 对象获取昨天的日期。 有什么想法吗?
编辑:已解决:
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-86400];
【问题讨论】:
标签: objective-c cocoa-touch nsdate
试试这个代码。通过这种方式,您可以获得 next days, next months, previous days , previous months..
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];
【讨论】:
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(60.0f*60.0f*24.0f)];
编辑:此解决方案不正确。请参阅 Aadhiras 的答案以获得正确的解决方案。
【讨论】:
NSTimeInterval 是一个 double,所以你可以去掉 f。尽管编译器很可能也会为您执行此操作。