Является ли timeIntervalBetween1970AndReferenceDate + timeIntervalSinceReferenceDate = timeIntervalSince1970 - PullRequest
0 голосов
/ 29 июня 2018

Я просматривал код и наткнулся на использование timeIntervalBetween1970AndReferenceDate и timeIntervalSinceReferenceDate.

Код возвращает временную метку в миллисекундах:

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

Разве это не эквивалентно:

return date.timeIntervalSince1970 * 1000

1 Ответ

0 голосов
/ 29 июня 2018

Действительно, нет никакой разницы. Date имеет свойство type

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...