如何获取 Swift 中的当前时间?

How to get current time in Swift?

我正在尝试获取当前时间,到目前为止我已经这样做了:

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

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

    let hour = components.hour

这个给我 "Value of type "Int" 没有成员 'hour'"。有什么建议吗?

改变

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

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

NSCalendar.component(_:fromDate:) returns 日期的 单个 组成部分,作为 Int。所以你的 components 变量实际上是 Int 类型。将多个单位传递给 component(_:fromDate:)(正如您所做的那样)是未定义的。

试试这个:

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

注意这里方法名的第一部分是components,不是component.

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

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