Преобразование даты в строку

Swift:
Преобразование даты в строку

Как это сделать:

Swift использует DateFormatter для преобразования объектов Date в читаемые строки. Вот как:

import Foundation

let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = formatter.string(from: date)
print(dateString) // Вывод: "2023-04-05 14:20:35" (или текущая дата и время)

Измените dateFormat, чтобы настроить внешний вид вашей даты:

formatter.dateFormat = "EEEE, MMM d, yyyy"
print(formatter.string(from: date)) // Вывод: "Среда, Апр 5, 2023"

Глубокое погружение

До DateFormatter, Objective-C и ранние версии Swift использовали NSDateFormatter, который по сути является тем же самым, но под другим названием. Ключевой момент — знание ISO 8601, стандарта формата даты. Разработчикам нужно находить баланс между пользовательскими форматами и настройками локали пользователя. Почему? Потому что даты читаются по-разному во всем мире. Например, американцы используют “MM/dd/yyyy”, в то время как во многих европейских странах используют “dd/MM/yyyy”.

Альтернативы? Конечно. Swift предлагает ISO8601DateFormatter для дат в формате ISO 8601 и DateComponentsFormatter для строк продолжительности, например, “42 минуты”. Вы также можете создать собственный формат с помощью .formatted() в Swift 5.5 и выше:

let formattedDate = date.formatted(.dateTime.year().month().day().hour().minute().second())
print(formattedDate) // Вывод будет зависеть от настроек вашей локали

Осторожно: Создание пользовательских строк может привести к проблемам с локализацией и коду, склонному к ошибкам. По возможности придерживайтесь форматтеров и стандартов.

Смотрите также