КОДЕКС
Сроки в Swift
Узнайте, как даты работают в Swift и как использовать объекты даты в ваших проектах.
Дата
Согласно Apple, объект даты - это:
Определенный момент времени, независимо от календаря или часового пояса.
Самый простой способ узнать текущую дату:
let date = Date() print(date)
Выход:
2021-01-30 10:48:09 +0000
Этот объект даты поддерживает
- Сравнение.
- Расчет временного интервала.
- Создание новой даты относительно другой даты.
Например:
Выход:
3600 2021-01-30 12:59:44 +0000 2021-01-30 11:59:44 +0000
Это здорово, но если вам нужно больше контролировать дату, вы должны использовать DateFormatter
.
Как использовать DateFormatter в Swift
Если вы хотите отображать информацию о дате в другом формате, например чтобы показать дату в стиле другой страны, тогда вам нужно использовать DateFormatter
.
Форматирование даты с помощью предустановок стилей
DateFormatter
предоставляет вам множество различных форматов даты, которые вы можете использовать.
В качестве примера давайте создадим объект DateFormatter
и настроим свойства dateStyle
и timeStyle
, чтобы изменить стиль строкового представления даты.
Выход:
Saturday, January 30, 2021 at 12:37:20 PM Greenwich Mean Time
Полный список всех возможных стилей для dateStyle
и timeStyle
is .none, .short, .medium, .long, .full
.
DateFormat - еще один способ настройки формата даты
Помимо dateStyle
и timeStyle
, dateFormat
также позволяет настроить форматирование даты. Его следует использовать только при работе с представлениями фиксированного формата, такими как ISO8601DateFormatter
.
Кроме того, не имеет смысла использовать ранее описанные свойства dateStyle
или timeStyle
при использовании dateFormat
в DateFormatter
.
Настройка стиля даты + локализация
Если предпочитаемый вами формат даты невозможен с более ранними предустановками стиля, вы можете использовать функцию setLocalizedDateFormatFromTemplate
в DateFormatter
для достижения стиля, которого вам не хватает.
Допустим, мы хотим отображать дату в финском календаре так, как она отображается в Финляндии. Например 30.1.2021
. Этот формат не подходит для более ранних предустановок стиля, поэтому нам нужно настроить DateFormatter
:
Выход:
30.01.2021
Обратите внимание, как мы использовали свойство locale
объекта DateFormatter
.
С locale
формат даты преобразуется в формат, который используется в конкретной стране, определенной locale
.
Обязательно всегда вызывайте setLocalizedDateFormatFromTemplate
после установки locale
из DateFormatter
, чтобы отображалась правильно отформатированная дата в регионе.
Компоненты даты - Работа с единицами даты
DateComponents
представляет дату в единицах времени. Например, часы, минуты, секунды и т. Д. Это позволяет вам получить доступ к компонентам времени и изменять их отдельно.
В следующем примере текущая дата извлекается по компонентам времени с помощью DateComponents
.