我有一个 ISO 8061 格式时间戳字符串“2018-06-13T12:11:13+05:00”,创建 Date
对象的正确方法是什么从字符串中取出?
我尝试过:
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let myDate = formatter.date(from: "2018-06-13T12:11:13+05:00")
但它无法正常工作,myDate
晚了一小时。对于这种时间戳我应该使用什么格式字符串?
最佳答案
对于 ISO 8601 时区格式
大写使用ZZZZZ
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
编辑
检查以下示例
我刚刚将 +05:30 从 05:00 更改为
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
formatter.timeZone = TimeZone(identifier: "UTC")
let myDate = formatter.date(from: "2018-06-13T12:11:13+05:30")
formatter.dateFormat = "yyyy-MM-dd HH:mm"
formatter.timeZone = TimeZone.current
print(formatter.string(from: myDate!))
输出
2018-06-13 12:11
关于ios - 在我的例子中,ISO 时间戳应该使用什么格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838378/