如何获得正确的时间在快速

时间:2016-02-27 09:28:50

标签: ios swift nsdate

当我得到像秒的组件时:

NSCalendar.currentCalendar()。components(.Second,fromDate:savedDate,toDate:todayDate,options:[])。second

我得到了那个日期以来的秒数。 但我试图获得所有组件,如日和小时,它给我每个组件的总数。

如果我得到的时间可以说36小时,那些日子会显示一天。

1 我希望它显示1天12小时。

2. 如何使用这些组件启动计数器或计时器?

1 个答案:

答案 0 :(得分:0)

您必须在components参数中指定要考虑的所有单位。

let components = NSCalendar.currentCalendar().components([.Second, .Minute, .Hour, .Day], fromDate: savedDate, toDate: todayDate, options: [])
print(components)

或者使用NSDateComponentsFormatter,它可以创建(本地化)字符串。指定要显示的单位和样式。

let formatter = NSDateComponentsFormatter()
formatter.allowedUnits = [.Day, .Hour, .Minute, .Second ]
formatter.unitsStyle = .Full
let dateString = formatter.stringFromDate(savedDate, toDate: todayDate)!
print(dateString)

关于你的第二个问题,让计数器以秒计数,并相应地格式化人类阅读的秒数。