获取两个 NSDate 之间的分钟数和小时数?
Get minutes and hours between two NSDates?
假设我需要获取两个 NSDate 之间的小时和分钟。例如,一个日期比另一个日期晚 3 小时 42 分钟。我如何获得经过的时间的小时数和分钟数?根据 this question,我已经尝试过类似的方法,但没有奏效:您不会同时获得 小时和分钟。
我也尝试过使用 NSCalendar,但也没有成功。相反,它只是给了我小时数和秒数,而不是一次测量。
有什么想法吗?
时间间隔以秒为单位 - 即小时和分钟。只是一点点数学。
let hours = totalTime / 3600
let minutes = (totalTime % 3600) / 60
Mac OS X 10.10 Yosemite 引入了智能 NSDateComponentsFormatter 以在 18h 56m 4s
等组件中显示时间间隔
此代码段的结果是从午夜到现在的格式化时间间隔。
let calendar = NSCalendar.currentCalendar()
let midnight = calendar.startOfDayForDate(NSDate())
let timeinterval = NSDate().timeIntervalSinceDate(midnight)
let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Abbreviated
formatter.stringFromTimeInterval(timeinterval)
简单的数学很容易,不需要日历。
let now = NSDate()
let latest = NSDate(timeInterval: 3*3600+42*60, sinceDate: now)
let difference = latest.timeIntervalSinceDate(now)
let hours = Int(difference) / 3600
let minutes = (Int(difference) / 60) % 60
这将为您提供以小时和分钟为单位的时间间隔。注意:不要忘记转换为整数,因为 NSTimeInterval 是一个浮动类型。
假设我需要获取两个 NSDate 之间的小时和分钟。例如,一个日期比另一个日期晚 3 小时 42 分钟。我如何获得经过的时间的小时数和分钟数?根据 this question,我已经尝试过类似的方法,但没有奏效:您不会同时获得 小时和分钟。
我也尝试过使用 NSCalendar,但也没有成功。相反,它只是给了我小时数和秒数,而不是一次测量。
有什么想法吗?
时间间隔以秒为单位 - 即小时和分钟。只是一点点数学。
let hours = totalTime / 3600
let minutes = (totalTime % 3600) / 60
Mac OS X 10.10 Yosemite 引入了智能 NSDateComponentsFormatter 以在 18h 56m 4s
此代码段的结果是从午夜到现在的格式化时间间隔。
let calendar = NSCalendar.currentCalendar()
let midnight = calendar.startOfDayForDate(NSDate())
let timeinterval = NSDate().timeIntervalSinceDate(midnight)
let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Abbreviated
formatter.stringFromTimeInterval(timeinterval)
简单的数学很容易,不需要日历。
let now = NSDate()
let latest = NSDate(timeInterval: 3*3600+42*60, sinceDate: now)
let difference = latest.timeIntervalSinceDate(now)
let hours = Int(difference) / 3600
let minutes = (Int(difference) / 60) % 60
这将为您提供以小时和分钟为单位的时间间隔。注意:不要忘记转换为整数,因为 NSTimeInterval 是一个浮动类型。