- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码。但是一个错误说,不能用类型的参数列表调用 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)
最佳答案
在 Swift 3 中,NSCalendar.current
返回 Calendar
, 哪一个是基金会的 Swift 值包装器类型 NSCalendar
类型。
dateComponents()
需要 Set<Calendar.Component>
和两个 Date
争论。 Date
是 NSDate
的 Swift 值包装器类型.
将现有的 Foundation API 导入 Swift 时,类型会自动桥接,这就是为什么 NSCalendar.current
返回 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 ,或“桥接类型”部分 Working with Cocoa Frameworks在“将 Swift 与 Cocoa 和 Objective-C 结合使用”引用。
关于swift - 如何从 NSDate(timeIntervalSince1970) 转换为 NSDate()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198803/
我正在尝试计算从一个日期到另一个日期的天数,并且找到了两种计算方法。 第一个使用 NSDateComponents 如下: NSCalendar *gregorianCalendar = [[NSCa
我正在尝试找出我们现在是多少毫秒。我找不到以毫秒为单位返回忽略日期的时间的方法,所以我想我可以根据 timeIntervalSince 1970 方法返回的值来计算它。 我这样做了: NSLog(@"
我有一个 NSManagedObject 对象: @NSManaged public var timestamp: NSDate 我需要两者之间的时间间隔,所以我实现了: let interval =
我是一名优秀的程序员,十分优秀!