2016-11-17 54 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'。可能只是帽子锁定开心。 –