带有AM / PM的DateFormatter返回n [重复项]

问题描述 投票:-1回答:2

我知道此主题已在此处和其他论坛中进行了充分讨论。不幸的是,我仍然不明白为什么日期为零。

注意,当我在调试器或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
ios swift nsdateformatter dateformatter
2个回答
0
投票

将en_US添加为您的语言环境,如下所示:

dateFormatter.locale =  NSLocale(localeIdentifier: "en_US")

-1
投票

好吧,这是胡说。代码没有问题(如果您忽略HH / hh,请参见注释)。

问题出在xCode调试器中,而不是显示它显示为'nil'的date对象的值。当我将其打印到控制台时,即使调试器显示为“ nil”,我也能达到预期的效果。

我猜测它无法以某种方式解析Date对象。更改线程并展开可选选项无济于事,并且调试器始终显示'nil'。

谢谢苹果。

© www.soinside.com 2019 - 2024. All rights reserved.