NSDate.timeIntervalSinceDate没有白天节省调整?

时间:2015-10-16 20:37:21

标签: ios nsdate nscalendar nsdatecomponent

当我比较10月25日的开始到结束时,我得到89999秒(25小时)。

我使用以下方法比较日期:

endOfDay.timeIntervalSinceDate(startOfDay)

然而,当我比较小时数时,我得到24小时。 我使用NSDate的以下扩展函数来比较小时数。:

 func differenceInHoursWith(date: NSDate) -> Int{
        let components = NSCalendar.currentCalendar().components(.Hour, fromDate: self, toDate: date, options: [])
        return components.hour
    }

有没有办法在没有白天时间调整的情况下以秒为单位获得差异?在我的情况下,我不需要它们,我需要秒粒度。

1 个答案:

答案 0 :(得分:0)

一小时有3600秒,所以你可以把秒数除以3600.这是一个实现这个:

func differenceInHoursWith(date: NSDate) -> Int {
    let seconds = self.timeIntervalSinceDate(date)
    return Int(seconds / 3600)
}

如果你想要差异的绝对值,你可以这样做:

func differenceInHoursWith(date: NSDate) -> Int {
    let seconds = self.timeIntervalSinceDate(date)
    let hours = Int(seconds / 3600)
    return abs(hours)
}