Решено это с помощью 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
}
Решено и работает нормально.