Как я могу определить часовой пояс для данной (локальной) даты - PullRequest
0 голосов
/ 14 июня 2019

Из API я получаю следующие две строки даты.Эти даты показывают время наблюдения за погодой метеостанции, которая находится в некотором часовом поясе.

dateUTC = "2019-06-14T18: 00: 00Z" dateLocal = "2019-06-14 20:00:00"

Как определить часовой пояс метеостанциив?(Не часовой пояс пользователя!)

Я пытался использовать DateFormatter, но, к сожалению, локальная дата немедленно преобразуется в GMT - и тогда она совпадает с датой UTC.

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let dateUTC = dateFormatter.date(from: current.currentObservation[0].timeUTC)!
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateLocal = dateFormatter.date(from: current.currentObservation[0].timeLocal)!

Я хотел бы видеть в результате вышеуказанные даты: Часовой пояс = GMT + 2

1 Ответ

0 голосов
/ 14 июня 2019

Ответ был довольно прост - до сих пор я не видел его часами. Хитрость заключается в том, чтобы установить часовой пояс для DateFormatter.

            let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        let dateUTC = dateFormatter.date(from: current.currentObservation[0].timeUTC)!
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
        let dateLocal = dateFormatter.date(from: current.currentObservation[0].timeLocal)!

        let difference = Calendar.current.dateComponents([.second], from: dateUTC, to: dateLocal).second!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...