Ios 使用DateFormatter时字符串时区中的日期不符
代码: 输出:Ios 使用DateFormatter时字符串时区中的日期不符,ios,swift,timezone,dateformatter,Ios,Swift,Timezone,Dateformatter,代码: 输出: 为什么日期输出时区是+07:30,而不是日期字符串和timezone.current中定义的+0800?任何人都能解释这一点?时区格式不是Z,而是ZZZ let isoDate = "1981-02-20T10:44:00+0800" let dateFormatter = DateFormatter() dateFormatter.timeZone = TimeZone.current dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:m
为什么日期输出时区是+07:30,而不是日期字符串和timezone.current中定义的+0800?任何人都能解释这一点?时区格式不是
Z
,而是ZZZ
let isoDate = "1981-02-20T10:44:00+0800"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
var localTimeZoneAbbreviation: String { return TimeZone.current.abbreviation() ?? "" }
let date = dateFormatter.date(from: isoDate)!
dateFormatter.string(from: date)
这也没有将时区设置为+0800,我只是编辑我的答案。时区格式为3 Z而不是4。将Z格式更改为各种组合。仍然是相同的输出GMT+0730I我只是再次检查,我认为它可以工作,但打印方法返回的结果是+0000,但时间是02:44,而不是10:44,因此它增加了8小时。如果在代码中操作相同的对象。一切正常。请注意,
时区。当前值是默认值。。。
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZ"