0Pricing
Swift Academy · Урок

Тип Date и интервалы времени

Представляйте моменты времени и их длительность.

«Тип Date и интервалы времени» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Тип Date

Date из Foundation представляет одну точку во времени, не зависящую от календаря или часового пояса. Внутри это количество секунд относительно опорной даты.

Создание Date

Date() возвращает текущий момент. Каждый вызов возвращает момент, в который он выполняется.

import Foundation

let now = Date()
print("Now is a Date value")
print(type(of: now))

Временные интервалы

TimeInterval — это просто число секунд типа Double. Добавляя или вычитая интервалы, можно сдвигать дату вперёд или назад.

import Foundation

let now = Date()
let inOneHour = now.addingTimeInterval(3600)
print(inOneHour > now)

timeIntervalSince

timeIntervalSince(_:) возвращает количество секунд между двумя датами в виде значения TimeInterval. Положительное значение означает, что получатель является более поздней датой.

import Foundation

let start = Date()
let later = start.addingTimeInterval(120)
let gap = later.timeIntervalSince(start)
print("Gap seconds: \(gap)")

Сравнение дат

Date соответствует протоколу Comparable, поэтому для непосредственного упорядочивания событий можно использовать <, > и ==.

import Foundation

let a = Date()
let b = a.addingTimeInterval(10)
print(a < b)
print(a == a)

Опорные даты

timeIntervalSinceReferenceDate измеряет количество секунд с 1 января 2001 года по UTC, а timeIntervalSince1970 использует эпоху Unix.

import Foundation

let d = Date(timeIntervalSince1970: 0)
print(d.timeIntervalSince1970)

Создание по метке эпохи

Можно создать определённый момент времени по метке времени Unix — это удобно при получении времени от сервера.

import Foundation

let epoch = Date(timeIntervalSince1970: 1_700_000_000)
print(epoch.timeIntervalSince1970)

Интервал между датами

Метод distance(to:) из Comparable/Strideable также возвращает интервал между двумя датами.

import Foundation

let a = Date()
let b = a.addingTimeInterval(45)
print(a.distance(to: b))

Вспомогательные значения для прошлого и будущего

Статические значения .distantPast и .distantFuture предоставляют специальные даты, удобные в качестве значений по умолчанию при сравнении.

import Foundation

let now = Date()
print(Date.distantPast < now)
print(Date.distantFuture > now)

Измерение прошедшего времени

Зафиксируйте дату начала, выполните нужную работу, а затем вычтите даты, чтобы измерить продолжительность в секундах.

import Foundation

let start = Date()
var total = 0
for i in 1...1000 { total += i }
let elapsed = Date().timeIntervalSince(start)
print("Sum: \(total)")
print("Elapsed >= 0: \(elapsed >= 0)")

Дата не зависит от календаря

Помните: объект Date не содержит сведений о годе, месяце или дне. Чтобы получить их, нужен объект Calendar, которому посвящён следующий урок.

import Foundation

let now = Date()
// To get the year you must use a Calendar, not Date alone.
print("A Date is just an instant in time.")

Быстрая проверка

Что возвращает laterDate.timeIntervalSince(earlierDate)?

Итоги

Date представляет один момент времени, измеряемый в секундах. Его можно сдвигать с помощью addingTimeInterval, измерять интервалы с помощью timeIntervalSince, сравнивать операторами и создавать по значениям эпохи. Этот тип не зависит от календаря, поэтому в следующем уроке мы познакомимся с Calendar и DateComponents.

Часто задаваемые вопросы

Урок «Тип Date и интервалы времени» бесплатный?

Да — полный текст урока «Тип Date и интервалы времени» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Тип Date и интервалы времени»?

Представляйте моменты времени и их длительность. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Тип Date и интервалы времени»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Тип Date и интервалы времени
  2. Calendar и DateComponents
  3. Форматирование дат
  4. Часовые пояса и локали
← Назад к Swift Academy