2016-11-17 30 views
1

產生意想不到的結果,我有以下代碼:DateFormatter設備上

var components = DateComponents() 
components.year = 2017 
components.month = 1 

var calendar = Calendar.current 
let date = calendar.date(from: components)! 

let formatter = DateFormatter() 
formatter.setLocalizedDateFormatFromTemplate("MMMMYYYY") 
let string = formatter.string(from: date) 

當我在我的電腦上模擬它作爲我希望和string2017年1月運行此。

但是,當我在我的設備上運行相同的代碼時,string的值爲2016年1月。什麼會導致這種差異?

回答

1

的差異可能是

  • 器件和模擬器不同的區域設置。

和/或

  • YYYY是年復一年基於日曆的周。
  • yyyy是標準日曆中的年份。

您應該始終使用yyyy

+0

是的,使用'yyyy'修復它。不知道我爲什麼使用'YYYY'。可能只是帽子鎖定開心。 –