gpt4 book ai didi

ios - DateFormatter 在 Swift 中为没有时间的特定日期字符串返回 nil

转载 作者:IT王子 更新时间:2023-10-29 05:17:39 26 4
gpt4 key购买 nike

我真的不明白这段代码发生了什么,我正在尝试将字符串转换为日期。我不明白的是转换适用于大多数日期,但不适用于仅 2 个日期。

let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "es")
dateFormatter.dateFormat = "dd 'de' MMMM"

dateFormatter.dateFromString("1 de octubre")
dateFormatter.dateFromString("2 de octubre")
dateFormatter.dateFromString("3 de octubre")
dateFormatter.dateFromString("4 de octubre")
dateFormatter.dateFromString("5 de octubre")
dateFormatter.dateFromString("6 de octubre")
dateFormatter.dateFromString("7 de octubre")
dateFormatter.dateFromString("8 de octubre")
dateFormatter.dateFromString("9 de octubre")
dateFormatter.dateFromString("10 de octubre")
dateFormatter.dateFromString("11 de octubre")
dateFormatter.dateFromString("12 de octubre")
dateFormatter.dateFromString("13 de octubre")
dateFormatter.dateFromString("14 de octubre")
dateFormatter.dateFromString("15 de octubre")
dateFormatter.dateFromString("16 de octubre")
dateFormatter.dateFromString("17 de octubre")
dateFormatter.dateFromString("18 de octubre")
dateFormatter.dateFromString("19 de octubre")
dateFormatter.dateFromString("20 de octubre")
dateFormatter.dateFromString("21 de octubre")
dateFormatter.dateFromString("22 de octubre")
dateFormatter.dateFromString("23 de octubre")
dateFormatter.dateFromString("24 de octubre")
dateFormatter.dateFromString("25 de octubre")
dateFormatter.dateFromString("26 de octubre")
dateFormatter.dateFromString("27 de octubre")
dateFormatter.dateFromString("28 de octubre")
dateFormatter.dateFromString("29 de octubre")
dateFormatter.dateFromString("30 de octubre")

我编写此代码是为了在 Playground 中试用,但它重现了我在生产代码中获得的一些日期。查看此代码生成的输出:

Playground output

如您在图片中所见,它不适用于 10 月 8 日和 15 日。适用于所有其他日期。我也试过八月和九月,在那几个月里整天都在工作。我还尝试将日期用葡萄牙语放在 pt-br 区域设置中,但在 10 月 8 日和 15 日也不起作用。它可以解释吗?


更新:@zneak 代码为我生成以下输出:

output

换句话说,10 月 8 日停止运行。

最佳答案

您只需要设置您的日期格式化程序日历属性:

Xcode 8.2.1 • Swift 3.0.2

let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .iso8601)
dateFormatter.locale = Locale(identifier: "es")
dateFormatter.dateFormat = "dd 'de' MMMM"
dateFormatter.date(from: "8 de octubre") // "Oct 8, 2000, 1:00 AM"

关于ios - DateFormatter 在 Swift 中为没有时间的特定日期字符串返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32408898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com