我知道此主题已在此处和其他论坛中进行了充分讨论。 不幸的是,我仍然不明白为什么日期为零。
请注意,当我在调试器或Playground中运行代码时,它完全可以正常工作。 这与它在设备上运行有关。
var dateString = "2019-12-17 3:48:02 PM"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss a"
let date = dateFormatter.date(from: dateString) // date is nil
答案 0 :(得分:0)
将en_US添加为您的语言环境,如下所示:
dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
答案 1 :(得分:-1)
好的,这是胡说八道。 代码没有问题(如果您忽略HH / hh,请参见注释)。
问题出在xCode调试器中,而不是显示它显示为'nil'的date对象的值。 当我将其打印到控制台时,即使调试器显示“ nil”,我也能达到预期的效果。
我猜测它无法以某种方式解析Date对象。 更改线程并解开可选变量无济于事,调试器始终显示'nil'。
谢谢苹果。