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/