我正在尝试获取当前时间,到目前为止我已经完成了这项工作:
let date = NSDate()
let calender = NSCalendar.currentCalendar()
let components = calender.component([.Hour, .Minute], fromDate: date)
然后我尝试获取组件的小时
let hour = components.hour
这给我“类型的值”Int“没有成员'小时'”。有什么建议吗?
答案 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