swift - 是 timeIntervalBetween1970AndReferenceDate + timeIntervalSinceReferenceDate = timeIntervalSince1970

标签 swift date

我正在查看代码并偶然发现了 timeIntervalBetween1970AndReferenceDatetimeIntervalSinceReferenceDate 的使用。

代码返回时间戳(以毫秒为单位):

return (Date.timeIntervalBetween1970AndReferenceDate + date.timeIntervalSinceReferenceDate) * 1000

这不是相当于:

return date.timeIntervalSince1970 * 1000

最佳答案

确实,没有什么区别。 Date 具有类型属性

public static let timeIntervalBetween1970AndReferenceDate: TimeInterval
// The number of seconds from 1 January 1970 to the reference date, 1 January 2001

和实例属性

public var timeIntervalSinceReferenceDate: TimeInterval { get }
// The interval between the date value and 00:00:00 UTC on 1 January 2001.

public var timeIntervalSince1970: TimeInterval { get }
// The interval between the date value and 00:00:00 UTC on 1 January 1970.

这意味着对于Date类型的任何值date,身份

Date.timeIntervalBetween1970AndReferenceDate + date.timeIntervalSinceReferenceDate
     == date.timeIntervalSince1970

成立。事实上,正如我们在 Date.swift#L111 中看到的那样, timeIntervalSince1970 实现为

public var timeIntervalSince1970: TimeInterval {
    return self.timeIntervalSinceReferenceDate + Date.timeIntervalBetween1970AndReferenceDate
}

关于swift - 是 timeIntervalBetween1970AndReferenceDate + timeIntervalSinceReferenceDate = timeIntervalSince1970,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51107324/

相关文章:

java - 如何正确检查2个Calendar对象表示的日期(年月日)是否相同?

ios - 用户转到主屏幕后,按钮不会更改单击时的图像

ios - Xcode6 快速类型推断错误?

date - 在 PowerShell 中设置日期月份格式

java - 确定时间是满小时还是半小时

c++ - 在 C++ 中调用 (date --set) 时避免 system() 输出

swift - 快速过滤 CD 关系

ios - UISearchControllerDelegate - 搜索栏在表头中不可见

ios - 从 JSON 响应创建一个对象,修改值,并在 Swift 中返回它

javascript - ui grid date cellfilter,过滤日期格式导致显示错误的日期