我知道这些关于日期格式化程序的问题一直被问到,但是我遇到的问题确实很奇怪
我需要将一个简单的字符串转换为日期,如下所示
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
let dateOfBirthString = "10/20/2002"
let dob: Date? = dateFormatter.date(from: dateOfBirthString)
这在 Playground 上工作得很好,但在应用程序中总是返回 nil (使用这些确切的值(尽管是属性而不是硬编码字符串)
任何帮助将不胜感激,它让我发疯
最佳答案
extension String {
func toDateTime() -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = TimeZone(identifier: "UTC")
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
guard let date = dateFormatter.date(from: self) else {
preconditionFailure("Take a look to your format")
}
return date
}
}
尝试这个扩展
let dateOfBirthString = "10/20/2002"
let dob: Date? = dateOfBirthString.toDateTime()
像这样使用这个扩展,如果您遇到任何错误,请随时在下面发表评论
关于ios - 日期格式化程序不从应用程序中的字符串返回日期,但可以在 Playground 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58477944/