Корректировка даты из API - PullRequest
       37

Корректировка даты из API

0 голосов
/ 06 апреля 2019

У меня есть API, который я использую, который возвращает дату в полночь на восточном побережье США. Эта дата, в свою очередь, используется вычисляемой переменной для возврата локализованной строки.Проблема, с которой я сталкиваюсь, заключается в том, что любой, кто на один или несколько часовых поясов отстает от восточного времени, получит день раньше от объекта даты, возвращенного из API.

Вот что я придумал для решения этой проблемы.Это выглядит странно, поэтому я надеялся увидеть, есть ли лучший способ получить объект даты в не восточном часовом поясе, который соответствует месяцу, дню и году исходного объекта даты.

if let timeZone = TimeZone(identifier: "America/New_York"),
    let date = dateObjectFromTheAPI {
    var dateComponentsFromAPI = Calendar.current.dateComponents(in: timeZone, from: date)
    let easternYear = dateComponentsFromAPI.year
    let easternMonth = dateComponentsFromAPI.month
    let easternDay = dateComponentsFromAPI.day

    if let year = easternYear,
        let month = easternMonth,
        let day = easternDay {
        var dateWithTimeZoneStripped = DateComponents()
        dateWithTimeZoneStripped.month = month
        dateWithTimeZoneStripped.year = year
        dateWithTimeZoneStripped.day = day

        Calendar.current.date(from: dateWithTimeZoneStripped)
    }
}

Спасибо за чтение.

...