Как правило, рекомендуется хранить даты в формате UTC / GMT и преобразовывать их обратно в местное время, когда они должны отображаться пользователю. Работая в настоящее время над приложением календаря, мне интересно, как это сделать для будущих / прошлых дат с учетом текущего летнего времени.
Дата до UTC:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let dt = dateFormatter.date(from: date)
Дата по местному времени:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
let dt = dateFormatter.date(from: date)
Пример. Когда пользователь, проживающий в Амстердаме, планирует следующую встречу с 16:00 до 17:00 (UTC + 2). Я буду хранить эквивалент UTC, который находится с 14:00 до 15:00. Теперь, если он захочет проверить свою встречу через два месяца, когда Амстердам перешел с летнего на зимнее время (UTC-1), пользователь увидит, что его собрание перенесено на 15:00 - 16:00.
Как быЯ лучше справлюсь с этим?