【问题标题】:DateFormatter producing unexpected result on device [duplicate]DateFormatter 在设备上产生意外结果 [重复]
【发布时间】:2016-11-17 16:37:32
【问题描述】:

我有以下代码:

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 月。造成这种差异的原因是什么?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    区别可能是

    • 设备和模拟器上的不同区域设置。

    和/或

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

    您应该始终使用yyyy

    【讨论】:

    • 是的,使用yyyy 修复它。不知道我为什么使用YYYY。可能只是大写锁定快乐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2022-01-18
    相关资源
    最近更新 更多