Форматирование дат
Отображайте даты с помощью современного 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 — локальная установка не требуется.