如何转换的NSDate(timeIntervalSince1970到NSDate的()?(How t

2019-09-28 03:31发布

这是我的代码。 但是一个错误说,不能与类型的参数列表调用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)

Answer 1:

在夫特3, NSCalendar.current返回一个Calendar ,这对于基金会夫特值包装类型NSCalendar类型。

dateComponents()需要一个Set<Calendar.Component>和两个Date参数。 Date是雨燕值包装类型NSDate

当现有的基础上的API被导入到斯威夫特的类型自动桥接,那为什么NSCalendar.current返回一个Calender ,而不是NSCalendar

值类型夫特3是优选的,因为它们提供适当的值语义和使用letvar而不是可变和不可变的变体。

全部放在一起:

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)

有关夫特3值的包装类型及其对应的基础类型的详细信息,请参见SE-0069可变性和地基值类型 ,或在部分“桥连类型” 与可可框架工作在“使用夫特与可可和Objective-C”参考。



文章来源: How to convert from NSDate(timeIntervalSince1970 to NSDate()?