Из документации :
Значение даты инкапсулирует один момент времени, независимо от какой-либо конкретной календарной системы или часового пояса.Значения даты представляют временной интервал относительно абсолютной ссылочной даты.
Другими словами, дата - это не что иное, как TimeInterval
, AKA Double
, представляющая количество секунд с отчетной даты.,Тогда пустой инициализатор для Date
будет тем, который возвращает дату на расстоянии 0 секунд от этой ссылочной даты.Все сводится к выбору контрольной даты:
- Сейчас:
let date1 = Date()
- 1 января 1970 года в 12:00:
let date2 = Date(timeIntervalSince1970: 0)
- Ян1, 2001 в 12:00:
let date3 = Date(timeIntervalSinceReferenceDate: 0)
Вы можете выбрать определенную дату в качестве справочной, если она имеет смысл для вас.Примеры: Date.distantPast
, Date.distantFuture
, ...
Теперь, если вы хотите, чтобы переменная имела определенный тип, но не имела значения, используйте optionals и установите их значения вnil
:
var date4: Date? = nil
Позже, когда вы захотите использовать переменную, просто установите для нее ненулевое значение:
date4 = Date(timeInterval: -3600, since: Date())
Чтобы использовать действительное значение,вам придется развернуть его, используя необязательную привязку или тому подобное.