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) // Вывод будет зависеть от настроек вашей локали
Осторожно: Создание пользовательских строк может привести к проблемам с локализацией и коду, склонному к ошибкам. По возможности придерживайтесь форматтеров и стандартов.
Смотрите также
- Форматирование даты - Документация Apple о DateFormatter