NSDate减去麻烦

时间:2011-12-28 08:09:51

标签: ios nsdate

所以在我的应用程序中我想减去两个日期。第一个日期是设置日期,第二个日期是当前日期。所以我尝试了这段代码:

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

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

但它计算从1970年开始的时间间隔。但我需要从当天开始。有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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中通过指定所有组件而不仅仅是小时和分钟来正确描述它。