日期格式化程序不从应用程序中的字符串返回日期虽然在操场上工作

Date formatter not returning date from string in app works in playground though

我知道这些关于日期格式化程序的问题一直被问到,但是我遇到的问题真的很奇怪

我需要将一个简单的字符串转换为日期,如下所示

    let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
let dateOfBirthString = "10/20/2002"
let dob: Date? = dateFormatter.date(from: dateOfBirthString)

这在操场上工作正常,但在应用程序中总是 returns 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()

像这样使用这个扩展,如果您遇到任何错误,请随时在下面发表评论