0Pricing
Swift Academy · Урок

Форматирование дат

Отображайте даты с помощью современного API форматирования.

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

Форматирование дат

Необработанные значения Date трудно читать человеку. Современный API FormatStyle в Swift аккуратно преобразует их в локализованные строки.

Метод formatted()

Вызов .formatted() для даты возвращает подходящую строку по умолчанию с учётом локали пользователя.

import Foundation

let now = Date()
let text = now.formatted()
print("Produced a string: \(!text.isEmpty)")

Форматирование дат с помощью FormatStyle

Передайте Date.FormatStyle, чтобы управлять отображаемыми частями, независимо выбирая стили даты и времени.

import Foundation

let now = Date()
let s = now.formatted(date: .abbreviated, time: .omitted)
print("Has date only: \(!s.isEmpty)")

Стили даты и времени

Параметры date: и time: принимают значения .full, .long, .abbreviated, .numeric или .omitted.

import Foundation

let now = Date()
let full = now.formatted(date: .complete, time: .shortened)
print(!full.isEmpty)

Настройка с помощью компонентов

Стиль .dateTime позволяет составить именно тот набор полей, который Вам нужен, например .year().month().day().

import Foundation

let now = Date()
let s = now.formatted(.dateTime.year().month().day())
print("Custom fields: \(!s.isEmpty)")

Выбор ширины поля

Каждый компонент принимает параметры, например .month(.wide) для полного названия или .month(.twoDigits) для числового представления.

import Foundation

let now = Date()
let s = now.formatted(.dateTime.month(.wide).year())
print(!s.isEmpty)

Только время

Если дата подразумевается, составьте формат только из полей времени, например .hour().minute().

import Foundation

let now = Date()
let t = now.formatted(.dateTime.hour().minute())
print("Time string: \(!t.isEmpty)")

Относительное форматирование

RelativeFormatStyle создаёт фразы вроде «через 2 часа» или «вчера» относительно текущего момента.

import Foundation

let soon = Date().addingTimeInterval(3600)
let rel = soon.formatted(.relative(presentation: .named))
print("Relative phrase produced: \(!rel.isEmpty)")

ISO 8601

Для вывода, предназначенного для машинной обработки, используйте .formatted(.iso8601) — стандартный формат обмена данными для программных интерфейсов.

import Foundation

let now = Date()
let iso = now.formatted(.iso8601)
print("Contains T separator: \(iso.contains("T"))")

Обратное преобразование строк

Стили форматирования обратимы: строку можно преобразовать в Date с помощью соответствующей стратегии.

import Foundation

let input = "2024-05-30T12:00:00Z"
if let date = try? Date(input, strategy: .iso8601) {
    print("Parsed: \(date.timeIntervalSince1970 > 0)")
}

FormatStyle и DateFormatter

Новый API FormatStyle обеспечивает проверку типов и требует меньше кода, чем старый DateFormatter, поэтому в новом коде предпочтительно использовать его.

import Foundation

let now = Date()
print(now.formatted(date: .long, time: .omitted).isEmpty == false)

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

Какой вызов отображает дату, но скрывает время?

Итоги

API FormatStyle форматирует даты с помощью .formatted(), настраиваемых стилей date:/time:, составных полей .dateTime, относительных фраз и ISO 8601. Он поддерживает обратное преобразование при разборе и предпочтительнее DateFormatter. Далее: часовые пояса и локали.

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

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

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

Чему я научусь в уроке «Форматирование дат»?

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

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

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

Сколько времени занимает урок «Форматирование дат»?

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

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

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

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

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