我想将日期从本地转换为UTC,将UTC转换为本地。
例如。 2015年4月1日,中午12:00是UTC然后
2015年4月1日,下午5:30对我来说是本地的,但我反过来了
let dateFormatter2 = DateFormatter()
dateFormatter2.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"[![enter image description here][1]][1]
dateFormatter2.timeZone = NSTimeZone.local
let date2 = dateFormatter2.date(from: "2015-04-01T12:00:00")
dateFormatter2.timeZone = NSTimeZone(name: "UTC")! as TimeZone
let date3 = dateFormatter2.date(from: "2015-04-01T12:00:00")
我将于2015年4月1日下午5:30收到UTC和 2015年4月1日,当地时间中午12:00
答案 0 :(得分:2)
最后这对我有用
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = NSTimeZone(name: "UTC")! as TimeZone
let date = dateFormatter.date(from: "2015-04-01 12:00:00")
print("UTC time",date!)
dateFormatter.timeZone = NSTimeZone.local
let timeStamp = dateFormatter.string(from: date!)
print("Local time",timeStamp)
答案 1 :(得分:0)
本地时区始终基于为您的应用设置的默认时区。
来自Apple文档
返回一个对象,该对象将所有消息转发到当前应用程序的默认时区。
请尝试使用NSTimeZone.system
。这将始终确保它将提供用户在iOS设置中设置的时区。
答案 2 :(得分:0)
试试这个:
let dateFormatter2 = DateFormatter()
dateFormatter2.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter2.timeZone = NSTimeZone.local
dateFormatter2.locale = Locale(identifier: "en_US_POSIX")
let date2 = dateFormatter2.date(from: "2015-04-01T12:00:00")
dateFormatter2.timeZone = TimeZone(identifier: "UTC")
let date3 = dateFormatter2.date(from: "2015-04-01T12:00:00")