我希望为用户启用一项功能,以便在当前时间1小时后执行功能。我在下面的代码中通过toDate
参数究竟是什么时间才能得到当前时间的1小时未来时间差?我不知道如何在NSDateFormatter
或NSDateComponents
中设置未来的时间。所以不能写我所尝试过的。如何从NSDate获得1小时的未来时间差
- (NSInteger)timeDifference:(NSDate *)fromDate ToDate:(NSDate *)toDate
{
NSLog(@" FromDate: %@, ToDate: %@",fromDate,toDate);
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *differenceValue = [calendar components:NSHourCalendarUnit
fromDate:fromDate toDate:toDate options:0];
NSLog(@"Calculated hour difference : %d",[differenceValue hour]);
NSInteger hourDifference = [differenceValue hour];
NSLog(@" HourDifference: %d",hourDifference);
return hourDifference;
}
这是会导致错误的幼稚和不正确的方法。 – uchuugaka 2015-04-05 15:29:02
@uchuugaka我从来没有听说过这种方法不正确,但你可能是对的。 – 2015-04-05 15:36:13
它会工作很多时间,但NSDate是一个很薄的包装周围的时间间隔,并不知道日历和时区的人的一部分。从某种意义上说,这是正确的。但实际上它忽略了所有发生在这个立法的任意角落案件的疯狂事件。 – uchuugaka 2015-04-05 15:40:05