Swift:
Анализ даты из строки
Как это сделать:
Swift делает разбор дат достаточно простым с помощью DateFormatter
. Вот короткий пример:
import Foundation
let dateString = "2023-04-01"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
if let parsedDate = dateFormatter.date(from: dateString) {
print("Разобранная дата: \(parsedDate)")
} else {
print("Не удалось разобрать дату.")
}
Пример вывода может выглядеть так, в зависимости от вашего часового пояса:
Разобранная дата: 2023-03-31 22:00:00 +0000
Помните, вывод по умолчанию в UTC!
Глубокое погружение
Еще со времен Objective-C, разработчики iOS использовали NSDateFormatter
, который был перенесен в Swift как DateFormatter
. Ранее работа с датами была довольно сложной из-за различий в форматах и часовых поясах. К счастью, DateFormatter
в Swift стандартизирует этот процесс.
Хотя DateFormatter
подходит для обычных сценариев, существуют альтернативы, такие как ISO8601DateFormatter
, для форматов ISO 8601, и вы даже можете погрузиться в более низкоуровневый API Cocoa
с использованием CFDateFormatter
для более тонкой настройки.
При реализации разбора даты всегда устанавливайте locale
как posix
(en_US_POSIX
), чтобы избежать неожиданного поведения из-за пользовательских настроек. Также имейте в виду, что разбор дат требует много ресурсов, поэтому повторно используйте ваш форматтер или рассмотрите возможность использования DateComponents
для повторяющихся задач.