来自字符串时区的日期不使用DateFormatter进行计数

时间:2017-08-09 07:58:37

标签: ios swift timezone dateformatter

代码:

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)

输出: enter image description here

为什么日期输出时区是+07:30而不是日期字符串中定义的+0800以及TimeZone.current?任何人都可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

时区格式不是Z,而是ZZZ

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZ"