我真的不知道这段代码发生了什么,我试图将字符串转换为日期。我不明白的是,转换适用于大部分日期,但不适用于只有两个日期。NSDateFormatter.dateFromString在特定语言的特定日期返回nil
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中尝试,但它重现了我在生产代码中得到的一些日期。采取此代码产生输出一看:
正如你可以在图片中看到,它并不适用于10月8日和15工程工作的所有其他人。我也尝试过8月和9月,在那几个月里,所有的日子都在工作。我还试图用pt-br语言环境将葡萄牙语的日期放在10月8日和15日不起作用。它可以解释吗?
更新:@zneak代码产生以下输出对我来说:
换句话说,停止运行10月8日
我无法用[本软件]重现您的问题(HTTP ://pastebin.com/x4nyXc1M)。 – zneak
您相信调试器。永远不要相信调试器。将结果分配给一个变量并记录下来。 –
@zneak,你的代码对我产生同样的错误。 –