如何找到两次之间的时间跨度?

时间:2015-09-16 21:27:43

标签: swift

我想计算剩余时间。我有一个完成时间。如何计算现在和结束时间之间的剩余时间?

我需要类似的东西

let date = NSDate()
let formatter = NSDateFormatter()
formatter.timeStyle = .ShortStyle
var now = formatter.stringFromDate(date) //prints 12.21 AM
var finishTime = "13:30 PM"

var remaining = now - finishTime //I want it to print 01:09 as remaining time

2 个答案:

答案 0 :(得分:6)

rhs

答案 1 :(得分:2)

正确且最终更简单的解决方案,并正确处理本地化和闰秒/天的事情,是使用NSDateComponentsFormatter

let formatter = DateComponentsFormatter()
formatter.zeroFormattingBehavior = .pad
formatter.allowedUnits = [.hour, .minute, .second]

print(formatter.string(from: 200.0)!)

输出“0:03:20”

这是this Objective C answer的Swift版本。

您可以在documentation中看到许多不同的选项,以防您想要更像“剩余约3秒”,缩写,更多单位,如年/月/天等。