Сегодня мы поговорим о работе с датами, временем и календарем в быстрых и, точнее, компонентах даты. С датой и временем всегда сложно работать, и есть много разных способов работать с ними. Чтобы начать работать с датой и временем в iOS, вы должны быть знакомы как минимум с этими тремя объектами: Date, DateFormatter и DateComponents.
Структура даты
Дата - это структура, принадлежащая фреймворку Foundation.
Он представляет собой конкретный момент времени, не зависящий от календаря или часового пояса.
Структура даты соединяется с классом NSDate.
Он предоставляет методы для создания дат, сравнения дат и расчета временных интервалов между датами.
Он НЕ делает ничего, связанного с форматом даты или преобразованием между строкой и датой.
DateFormatter класс
Принадлежит к структуре Foundation
Средство форматирования, предоставляющее методы преобразования даты в строку и из строки в дату.
Он также позволяет вам настроить представление строки даты, используя предопределенные стили или создав свой собственный формат.
Он также поддерживает локализацию.
Структура DateComponents
Принадлежит к фреймворку Foundation.
Это объект Date или Time, представленный в таких единицах, как год, месяц, день, минута или час в конкретном календаре.
Он обеспечивает прямой доступ к разным частям даты и времени.
Теперь давайте напишем код, чтобы продемонстрировать, как работать с датами в Swift.
чтобы получить текущую дату в формате «гггг-ММ-дд ЧЧ: мм: сс»
let rightNow = Date()
let dateFormat = DateFormatter()
dateFormat.dateFormat = "yyyy-MM-dd HH:mm:ss"
let formattedDateAndTime = format.string(from: rightNow)
print(formattedDateAndTime)
если вам нужен текущий день, месяц, год.
используйте класс Calendar
let calendar = Calendar.current let year = calendar.component(.year, from: rightNow) let month = calendar.component(.month, from: rightNow) let day = calendar.component(.day, from: rightNow) let hour = calendar.component(.hour, from: rightNow) let minute = calendar.component(.
minute, from: rightNow) let second = calendar.component(.second, from: rightNow)
print("\(year), \(month), \(day), \(hour), \(minute), \(second)")
все возвращает int. если моль - сентябрь. месяц вернется 9.
день недели.
let weekday = calendar.component(.weekday, from: date)
print("\(weekDay)")
Он вернет 1, когда это воскресенье, как в григорианском календаре.
добавить месяц
var lastMonthDate = Calendar.current.date(byAdding: .month, value: -1, to: date)
let lastMonth = calendar.component(.month, from:lastMonthDate!)
print(lastMonth)
он дает вам номер последнего месяца, например, если это июль, то он дает вам июнь.
let calendar = Calendar.current let dateComponents = DateComponents(calendar: calendar, year: 1998, month: 6, day: 11) print(dateComponents) // if you want to convert it into proper date and time let composedDate = calendar.date(from: dateComponents) print(composedDate)
он дает вам текущий тип календаря и год, месяц и день, которые вы указали выше.
var dateArray = [Date]() for day in -30...30 { dateArray.append(Date(timeIntervalSinceNow: Double(day * 86400))) } print(dateArray)
он дает вам массив из 60 дат, что означает 30 дней назад (текущая дата) и 30 дней вперед.
Преобразование даты в строку с использованием DateFormatter
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
dateFormatter.timeStyle = .full
let dateString = dateFormatter.string(from: date)
Результат:
Saturday, November 25, 2017 at 8:22:04 PM GMT
Сначала мы создаем экземпляр DateFormatter
Не стесняйтесь задавать вопросы об этой статье, я здесь, чтобы ответить.
Понравилась эта статья?
Спасибо, что прочитали эту статью.
Вы можете дать до 50 аплодисментов: долгим нажатием на кнопку хлопка.
Если вам понравилась эта статья или вы узнаете что-то новое, поддержите меня, поделившись этой статьей.
Спасибо.