如何从 NSDate(timeIntervalSince1970) 转换为 NSDate()?
How to convert from NSDate(timeIntervalSince1970 to NSDate()?
这是我的代码。但是报错说,不能用参数列表类型调用 dateComponent...
let fromDate = NSDate(timeIntervalSince1970: TimeInterval(tweetsArray[indexPath.row].timestamp)!)
let toDate = NSDate()
let components : NSCalendar.Unit = [.second, .minute, .hour, .day, .weekOfMonth]
let differenceOfDate = NSCalendar.current.dateComponents(components, from: fromDate, to: toDate)
在Swift3中,NSCalendar.current
returns一个Calendar
,也就是
Swift Foundation NSCalendar
类型的值包装器类型。
dateComponents()
接受一个 Set<Calendar.Component>
和两个 Date
参数。 Date
是 NSDate
的 Swift 值包装器类型。
将现有的 Foundation API 导入 Swift 时,类型会自动桥接,这就是 NSCalendar.current
的原因
returns 一个 Calender
而不是 NSCalendar
.
值类型在 Swift 3 中是首选,因为它们
提供适当的值语义并使用 let
和 var
代替
不可变和可变变体。
综合起来:
let fromDate = Date(timeIntervalSince1970: ...)
let toDate = Date()
let components = Set<Calendar.Component>([.second, .minute, .hour, .day, .weekOfMonth])
let differenceOfDate = Calendar.current.dateComponents(components, from: fromDate, to: toDate)
有关 Swift 3 种值包装器类型和
它们相应的基础类型,请参见
SE-0069 Mutability and Foundation Value Types,
或 "Bridged Types" 部分
Working with Cocoa Frameworks 在 "Using Swift with Cocoa and Objective-C"
参考。
这是我的代码。但是报错说,不能用参数列表类型调用 dateComponent...
let fromDate = NSDate(timeIntervalSince1970: TimeInterval(tweetsArray[indexPath.row].timestamp)!)
let toDate = NSDate()
let components : NSCalendar.Unit = [.second, .minute, .hour, .day, .weekOfMonth]
let differenceOfDate = NSCalendar.current.dateComponents(components, from: fromDate, to: toDate)
在Swift3中,NSCalendar.current
returns一个Calendar
,也就是
Swift Foundation NSCalendar
类型的值包装器类型。
dateComponents()
接受一个 Set<Calendar.Component>
和两个 Date
参数。 Date
是 NSDate
的 Swift 值包装器类型。
将现有的 Foundation API 导入 Swift 时,类型会自动桥接,这就是 NSCalendar.current
的原因
returns 一个 Calender
而不是 NSCalendar
.
值类型在 Swift 3 中是首选,因为它们
提供适当的值语义并使用 let
和 var
代替
不可变和可变变体。
综合起来:
let fromDate = Date(timeIntervalSince1970: ...)
let toDate = Date()
let components = Set<Calendar.Component>([.second, .minute, .hour, .day, .weekOfMonth])
let differenceOfDate = Calendar.current.dateComponents(components, from: fromDate, to: toDate)
有关 Swift 3 种值包装器类型和 它们相应的基础类型,请参见 SE-0069 Mutability and Foundation Value Types, 或 "Bridged Types" 部分 Working with Cocoa Frameworks 在 "Using Swift with Cocoa and Objective-C" 参考。