string - NSDateFormatter.dateFromString 向 NSDate 返回 nil ("yyyy-MM-dd")

标签 string swift nsdate nsdateformatter nslocale

NSDateFormatter 有问题。

所以我有一个格式为 "yyyy-MM-dd" 的日期字符串,例如 2015-09-22。 但是,当我将其传递给 NSDateFormatter.dateFromString 时,该方法返回 nil。我的代码如下:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
let dateAsNSDate = dateFormatter.dateFromString(payload.objectForKey("messageExpiry") as! String)

从调试器控制台在此代码上方的断点处:

po payload.objectForKey("messageExpiry") as! String

"2015-09-31"

我已经探讨了与此类似的其他问题,但仍无法解决此问题。 我们将不胜感激。

最佳答案

您的代码是正确的并产生了预期的结果,例如为了 输入字符串“2015-09-22”。然而,对于输入“2015-09-31”, nil 被返回,因为那是一个无效的日期:九月有 只有 30 天。

可以设置

dateFormatter.lenient = true

然后“2015-09-31”被接受并被视为“2015-10-01”。 但是你应该先检查为什么 payload.objectForKey("messageExpiry") 返回无效日期。

关于string - NSDateFormatter.dateFromString 向 NSDate 返回 nil ("yyyy-MM-dd"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32720115/

相关文章:

java - ArrayList<对象> 到 ArrayList<字符串>

swift - 无法将类型 T 的值分配给类型 T

ios - NSDATE 到日期时间选择器

ios - 如何从 NSDate 获得 1 小时的 future 时差

swift - 如何获取自 NSDate 的引用日期以来的天数?

Python - 将注释添加到三引号字符串中

jquery - 将字符串作为对象传递给 jQuery 函数

android - 在 strings.xml 中存储十六进制颜色值

ios - 单击按钮,使选择器 View 出现,然后选项出现在标签中

ios - 一个 Xcode 文件中的结构无法在另一个文件中工作/被识别