九月的日期格式“dd-MMM-yyyy”现在是九月。不是九月,所以转换会导致零

GDe*_*Dev 9 null swift dateformatter

将 iPad 更新至 iOS 15.4。

\n

现在,当存储的月份格式“MMM”= Sep 时,使用 DateFormatter 进行字符串到日期的转换将返回 nil。

\n

当 MMM 月 = 九月 时工作正常

\n

适用于 iOS 15.3 及更早版本。

\n

问题是我创建了日期并将其存储为 dd-Sep-2021。

\n
    let dateFormat = "dd-MMM-yyyy"\n    let dateFormatter = DateFormatter()\n    dateFormatter.calendar = Calendar(identifier: .iso8601)\n    dateFormatter.dateFormat = dateFormat\n    let startDate = dateFormatter.date(from: appStartDate) //Returns nil if \xe2\x80\x9c11-Sep-2021\xe2\x80\x9d and crashes\n    print(String(describing: startDate))\n
Run Code Online (Sandbox Code Playgroud)\n

对这段代码进行了一些调查,发现 Sept 有效,而 Sep 则无效。

\n
    let x = "-Sep-2021" // This returns nil\n    //let x = "-Sept-2021" // This works\n    var z: String = ""\n    let i = 1...30\n    for n in i {\n        z = String(n) + x\n        guard let y = dateFormatter.date(from: z) else {\n            print(String(n)) // will print if nil\n            continue\n        }\n        print(\\(String(describing: y))) //will print if string converted to date\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

所有其他 3 个字符的月份格式均有效。

\n

知道情况是否发生变化吗?

\n