DateFormatter在设备上产生意外结果

时间:2016-11-17 16:37:32

标签: ios swift

我有以下代码:

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)

当我在计算机上的模拟器中运行它时,它可以正常工作,string的值 2017年1月

但是,当我在设备上运行相同的代码时,string的值为 2016年1月。可能导致这种差异的原因是什么?

1 个答案:

答案 0 :(得分:1)

区别可能是

  • 设备和模拟器上的其他区域设置。

和/或

  • YYYY是基于周年日历的年份。
  • yyyy是标准日历中的年份。

您应始终使用yyyy