iOS - 两次之间的差异(忽略日期)

时间:2014-04-27 21:17:54

标签: ios nsdate

如何找到两个NSDates之间的差异,但忽略了日期,只关心时间?

到目前为止,我已经找到了很多解决方案来计算NSDates之间的差异,但没有一个能够忽略日期而只关心时间。

例如,01/01/01 04:35 PM和01/09/09 04:36 PM之间的差异是1分钟

2 个答案:

答案 0 :(得分:1)

与在iOS上相关的所有日期计算一样,NSCalendar已经为您提供了帮助!具体来说,您希望使用components:fromDate:toDate:options:并传递NSWrapCalendarComponents作为选项,这样可以防止组件溢出到更高日期的组件中。

答案 1 :(得分:0)

试试这个:

int (^timeFromDate)(NSDate *) = ^(NSDate *date) {
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit
                                               fromDate:date];

    return (components.hour * 60 + components.minute) * 60 + components.second;
};
int diff = timeFromDate(date1) - timeFromDate(date2);