假设我需要获得两个NSDates之间的小时和分钟。例如,一个日期是另一个日期后3小时42分钟。如何获得经过时间的小时和分钟?根据{{3}},我已尝试过这样的事情,但它没有奏效:你没有 小时和分钟。
我也尝试过使用NSCalendar,但这也没有用。相反,它只给了我小时数和秒数,而不是一次测量。
任何想法?
答案 0 :(得分:5)
间隔以秒为单位 - 这可以为您提供小时和分钟。只是数学一点。
let hours = totalTime / 3600
let minutes = (totalTime % 3600) / 60
答案 1 :(得分:5)
Mac OS X 10.10优胜美地引入智能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)
答案 2 :(得分:3)
无需日历即可轻松获得数学平台。
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是浮点类型。