我正在运行一段返回的代码nil
在具有不同语言设置的 iPhone 上运行时。代码示例如下所示:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM d, yyyy, h:mm a"
let thisDate = "Mar 4, 2017, 7:50 PM"
let foundationDate = dateFormatter.string(from: Foundation.Date())
print("As String - thisDate: \(thisDate), foundationDate: \(foundationDate)")
print("As Date - thisDate: \(dateFormatter.date(from: thisDate)), foundationDate: \(dateFormatter.date(from: foundationDate))")
如果我运行这个,我会得到:
As String - thisDate: Mar 4, 2017, 7:50 PM, foundationDate: okt. 22, 2017, 7:57 PM
As Date - thisDate: nil, foundationDate: Optional(2017-10-22 17:57:00 +0000)
任何人都可以展示如何覆盖客户端设置thisDate
不会返回零?
当您需要解析始终以固定语言到达的固定格式日期/时间字符串时,您需要设置日期格式化程序的区域设置,以便它与您正在解析的数据匹配。
在这种情况下,最好使用特殊区域设置en_US_POSIX
。这可确保无论用户的区域设置如何,都能处理英文月份名称,并能正确处理设备上的 12/24 时间设置。
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)