通过添加/减去本地偏移量来计算日期时间[将任何日期时间转换为UTC时间格式]

时间:2018-12-28 08:38:44

标签: ios swift timezone-offset

我要搭乘航班:

  1. 服务中的计划日期和计划时间以及航班本地偏移值

现在需要找到我的datetime(本地时区)和datetime(来自服务)之间的时差。

问题:我的本地日期时间与排期的日期和时间之间的黑白差异(可以是任何时区,因此在服务中我会得到LOCALOFFSET VALUE,例如:“-7:00”或“ -6:00”

例如: 航班日期时间:2018-12-28 05:15:00,本地偏移:-06:00 我的本地日期时间:2018-12-28 14:08:00

需要找到区别吗?

谢谢

1 个答案:

答案 0 :(得分:1)

通过使用来自服务的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
    }

已解决且工作正常。