在我的 Playground 上,我正在测试日期时间的转换,但它似乎没有转换:
import UIKit
let dateString = "2017-12-01 10:00:00 +0000"
print("original date = \(dateString)")
var formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
formatter.timeZone = TimeZone(identifier: "Asia/Shanghai")
if let date = formatter.date(from: dateString) {
print("converted date = \(date)")
}
print("test")
输出是:
original date = 2017-12-01 10:00:00 +0000
converted date = 2017-12-01 10:00:00 +0000
test
我希望转换后的日期类似于 2017-12-01 18:00:00 +0800
(因为上海比 UTC 00:00:00 早 8 小时)
最佳答案
请试试这个:
let dateString = "2017-12-01 10:00:00 +0000"
print("original date = \(dateString)")
var formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
formatter.timeZone = TimeZone.init(abbreviation: "UTC")
if let date = formatter.date(from: dateString) {
formatter.timeZone = TimeZone(identifier: "Asia/Shanghai")
let localTime = formatter.string(from: date)
print(localTime)
}
print("test")
输出:
original date = 2017-12-01 10:00:00 +0000
2017-12-01 18:00:00 +0800
test
关于iOS 日期时区转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42712778/