DateFormatter为iOS 11(转换为UTC)和iOS 10(未转换为UTC)提供不同的日期

时间:2018-08-02 06:30:52

标签: ios swift xcode

将时间字符串转换为日期对象的方法:

class func StringToDate(format: String, date: String) -> Date{
        let formatter = DateFormatter()
        formatter.dateFormat = format
        return formatter.date(from: date)!
    }

格式: hh:mm a

时间字符串:上午10:00

结果:

字符串时间:上午10:00,对象时间:2000-01-01 10:00:00 +0000 // ios 10

字符串时间:上午10:00,对象时间:2000-01-01 04:30:00 +0000 // ios 11

对于iOS v11,结果是可以的,但对于iOS v10,它是错误的,我希望结果采用UTC格式。

我已经尝试过:

1. formatter.timeZone = NSTimeZone.local
2. formatter.timeZone = TimeZone(identifier: "UTC")
3. formatter.timeZone = TimeZone.ReferenceType.system

1 个答案:

答案 0 :(得分:1)

请添加此内容(可能是因为您的系统正在选择当前时区)-

formatter.timeZone = TimeZone.init(abbreviation: “UTC”)