Вычислить дату и время путем добавления / вычитания локального смещения [Конвертировать любое время даты в формат времени UTC] - PullRequest
0 голосов
/ 28 декабря 2018

Я получаю рейс:

  1. Запланированная дата и запланированное время, а также значение локального смещения рейса в службе

Теперь необходимо найти разницу между моей датой и временем (местный часовой пояс) и дата / время (прибывающие из службы).

Проблема: разница ч / б между моим местным датой и временем и запланированной датой и временем полета (может быть любой TIMEZONE, поэтому в службе я получаю LOCALOFFSET VALUEкак: «-7: 00» или «-6: 00»

Например: Дата рейса: 2018-12-28 05:15:00, местное смещение: -06: 00 Моя локальная дата: время: 2018-12-28 14:08:00

Нужно найти разницу?

Спасибо

1 Ответ

0 голосов
/ 31 декабря 2018

Решено это с помощью localoffset, поступающего из сервиса, и с помощью метода, доступного в swift, TimeZone (secondsFromGMT: offset):

func findFlightTimeInUTCFormat(dateString:String, localOffSet:String) -> Date? {
        let gmtTimeString = dateString

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        formatter.timeZone = TimeZone(secondsFromGMT: -6*60*60)
        var finalDate:Date?
        // original string in GMT
        guard let date = formatter.date(from: gmtTimeString) else {
            print("can't convert time string")
            return finalDate
        }
        finalDate = date
        return finalDate
    }

Решено и работает нормально.

...