如何获得两个date之间的天数objective-c

我正在试着制作一个标签,说明事件还有多less天。 我想计算今天的date和事件date之间的差异。 我使用这个代码,它给我-4600。 它工作正常,直到我使用今天的date。

NSDateFormatter *f = [[NSDateFormatter alloc] init]; [f setDateFormat:@"yyyy-MM-dd"]; NSDate *startDate = [NSDate date]; NSDate *endDate = [f dateFromString:end]; NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0]; return components.day; return components.day; 

默认[NSDate date]返回date在像2013-08-06 08:50:25 +0000 ,你已经把你的格式化程序设置为yyyy-MM-dd这个,所以你必须将你的startDate转换为yyyy-MM-dd这个形成..

尝试这个

 NSDateFormatter *f = [[NSDateFormatter alloc] init]; [f setDateFormat:@"yyyy-MM-ddHH:mm:ss ZZZ"]; NSDate *startDate = [NSDate date]; NSLog(@"%@",startDate); NSDate *endDate = [f dateFromString:end]; NSLog(@"%@",endDate); NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0]; return components.day;