如何获得Swift的当前时间?

时间:2016-06-17 19:49:03

标签: swift date nsdate

我正在尝试获取当前时间,到目前为止我已经完成了这项工作:

    let date = NSDate()
    let calender = NSCalendar.currentCalendar()
    let components = calender.component([.Hour, .Minute], fromDate: date)

然后我尝试获取组件的小时

    let hour = components.hour

这给我“类型的值”Int“没有成员'小时'”。有什么建议吗?

3 个答案:

答案 0 :(得分:7)

更改

let components = calender.component([.Hour, .Minute], fromDate: date)

let components = calender.components([.Hour, .Minute], fromDate: date)

答案 1 :(得分:4)

NSCalendar.component(_:fromDate:)Int的形式返回日期的单个组件。因此,您的components变量实际上是Int类型。将多个单位传递给component(_:fromDate:)(正如您所做的那样)是未定义的。

请改为尝试:

let components = calender.components([.Hour, .Minute], fromDate: date)

请注意,此处方法名称的第一部分为components,而非component

此外,您可能希望将calender变量更改为calendar,因为这是正确的拼写。

答案 2 :(得分:1)

swift 4

let hh2 = (Calendar.current.component(.hour, from: Date()))
let mm2 = (Calendar.current.component(.minute, from: Date()))
let ss2 = (Calendar.current.component(.second, from: Date()))

print(hh2,":", mm2,":", ss2) 

 output: ---> 9 : 10 : 55