2011-12-28 87 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中正確描述它,方法是指定所有組件,而不僅僅是小時和分鐘。