2017-08-09 39 views
2

代碼:日期不相符使用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

爲什麼date輸出時區是07:30,而不是0800如在日期字符串定義和也TimeZone.current?任何人都可以解釋這一點?

+0

注意'TimeZone.current'是默認值... –

回答

0

的時區格式不ZZZZ

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

也沒有時區固定到+0800 – adiman

+0

我只是修改我的答案。時區格式是3 Z不是4. – Maxime

+0

將Z格式更改爲各種組合。仍然是相同的輸出GMT + 0730 – adiman