获得两个NSDates之间的分钟和小时数?

bri*_*one 1 nsdate swift

假设我需要获得两个NSDates之间的小时和分钟.例如,一个日期是另一个日期后3小时42分钟.如何获得经过时间的小时和分钟?我已经试过这样的事情,根据这个问题,但没有奏效:你没有得到这两个小时和分钟.

我也尝试过使用NSCalendar,但这也没有用.相反,它只给了我小时数和秒数,而不是一次测量.

有任何想法吗?

Chr*_*wik 5

间隔以秒为单位 - 这可以为您提供小时和分钟.只是数学一点点.

let hours = totalTime / 3600
let minutes = (totalTime % 3600) / 60
Run Code Online (Sandbox Code Playgroud)


vad*_*ian 5

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)
Run Code Online (Sandbox Code Playgroud)


Eik*_*iko 5

用简单的数学就很容易,不需要日历。

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
Run Code Online (Sandbox Code Playgroud)

这将为您提供以小时和分钟为单位的间隔。注意:不要忘记转换为整数,因为 NSTimeInterval 是浮点类型。