Что это и зачем нужно?
Swift — современный язык программирования от Apple для iOS, macOS, watchOS и tvOS. Работа с датами — одна из ключевых задач в мобильной и десктопной разработке: от отображения времени в чатах до расчёта дедлайнов в приложениях. В Swift нет отдельной библиотеки для дат — вся функциональность встроена в фреймворк Foundation. Он предоставляет классы Date, DateFormatter, Calendar и DateComponents, которые позволяют создавать, форматировать, сравнивать и манипулировать датами.
Как установить?
Foundation — часть стандартной библиотеки Swift, поэтому установка не требуется. Просто импортируйте модуль в вашем файле: import Foundation. Для работы с датами в iOS/macOS проектах (через Xcode) никаких дополнительных зависимостей не нужно.
Основные функции
- Создание даты:
Date()— текущая дата и время;Date(timeIntervalSinceNow:)— дата через N секунд. - Форматирование:
DateFormatter— преобразование даты в строку (локализованный вывод) и обратно. - Компоненты даты:
Calendar.current.dateComponents([.year, .month, .day], from: date)— извлечение года, месяца, дня. - Сравнение: операторы
==,<,>, а такжеcompare(). - Манипуляции:
Calendar.current.date(byAdding: .day, value: 7, to: date)— добавление 7 дней.
Пример кода на Swift (iOS/macOS)
import Foundation
// Текущая дата
let now = Date()
print("Сейчас: \(now)")
// Форматирование в локализованную строку
let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.timeStyle = .short
formatter.locale = Locale(identifier: "ru_RU")
let formatted = formatter.string(from: now)
print("Форматированная дата: \(formatted)")
// Извлечение дня недели
let calendar = Calendar.current
let weekday = calendar.component(.weekday, from: now)
print("День недели (1=воскресенье): \(weekday)")
// Добавление 3 дней
if let futureDate = calendar.date(byAdding: .day, value: 3, to: now) {
print("Через 3 дня: \(formatter.string(from: futureDate))")
}
// Парсинг строки
formatter.dateFormat = "yyyy-MM-dd"
if let parsedDate = formatter.date(from: "2025-12-31") {
print("Распарсено: \(parsedDate)")
}Когда использовать?
Используйте встроенные инструменты Foundation всегда, когда нужно работать с датами в Swift: отображение времени в UI, расчёт разницы между датами, создание календарей, напоминаний, таймеров, логирование событий. Для сложных сценариев (например, работа с часовыми поясами или повторяющимися событиями) комбинируйте DateComponents и Calendar. Альтернативные сторонние библиотеки (например, SwiftDate) существуют, но для большинства проектов достаточно Foundation.