Как правильно записать и вывести дату?

В языке Swift существует несколько способов записи и вывода даты. Рассмотрим каждый из них более подробно.

1. Создание даты:
Для создания даты в Swift используется структура Date. Есть несколько способов создания экземпляра этой структуры:

- Создание текущей даты:
Для этого можно воспользоваться инициализатором без параметров:

     let currentDate = Date()

- Создание даты на основе заданных компонентов:
Для этого используется инициализатор DateComponents, который позволяет задавать год, месяц, день и другие компоненты даты:

     var dateComponents = DateComponents()
     dateComponents.year = 2022
     dateComponents.month = 1
     dateComponents.day = 1
     let date = Calendar.current.date(from: dateComponents)

- Создание даты на основе даты в другой временной зоне:

     let dateInUTC = Date() // текущая дата
     let dateFormatter = DateFormatter()
     dateFormatter.timeZone = TimeZone(identifier: "UTC")
     dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
     let utcDateString = dateFormatter.string(from: dateInUTC)
     let dateInLocalTimeZone = dateFormatter.date(from: utcDateString)

2. Вывод даты в удобочитаемом формате:
Для вывода даты в удобочитаемом формате в Swift используется класс DateFormatter. Вот пример кода, который выводит дату в формате "dd-MM-yyyy":

   let date = Date()
   let dateFormatter = DateFormatter()
   dateFormatter.dateFormat = "dd-MM-yyyy"
   let formattedDate = dateFormatter.string(from: date)
   print(formattedDate)  // Выводит дату в формате "dd-MM-yyyy"

Класс DateFormatter имеет множество других форматов даты и времени, которые можно использовать. Вы можете установить свой формат, используя символы формата даты и времени, описанные в документации Apple: https://developer.apple.com/documentation/foundation/dateformatter/1618304-dateformat

Кроме того, вы можете настроить DateFormatter на работу с определенной локалью или временной зоной с помощью свойств locale и timeZone.

Это основные способы записи и вывода даты в языке Swift. Вы можете выбрать подходящий для вас метод в зависимости от ваших потребностей и требований проекта.