2011-12-28 65 views
0

所以在我的应用程序我想减去两个日期。第一个日期是设置日期,第二个日期是当前日期。所以我试过这个代码:NSDate减去麻烦

NSString *setDateString = [NSString stringWithFormat:@"12:30"]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSDate *setDate = [dateFormatter dateFromString:setDateString]; 

    NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:setDate]; 

但它计数从1970年的时间间隔。但我需要从当前的日子。谁能帮忙?

回答

0

我假设你想要现在到1230小时之间的差异。这可以通过

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components =[gregorian components:(NSDayCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit) fromDate:today]; 
[components setHour:12]; 
[components setMinute:30]; 
[components setSecond:0]; 
NSDate *setDate=[gregorian dateFromComponents:components]; 
NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:setDate]; 
[gregorian release]; 

它不适合你的原因是你没有正确给出格式。或者,您可以在setDateString中正确描述它,方法是指定所有组件,而不仅仅是小时和分钟。