Sé que estas preguntas se hacen todo el tiempo sobre los formateadores de fecha, sin embargo, el problema que tengo es realmente extraño

Necesito convertir una cadena simple a la fecha de la siguiente manera

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

Esto funciona bien en un patio de recreo, pero siempre devuelve nulo en la aplicación (con esos valores exactos (aunque sean propiedades en lugar de cadenas codificadas)

Cualquier ayuda sería apreciada, me está volviendo loco

0
user499846 21 oct. 2019 a las 01:52

1 respuesta

La mejor respuesta
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
}
}

Prueba esta extensión

let dateOfBirthString = "10/20/2002"
let dob: Date? = dateOfBirthString.toDateTime()

Use esta extensión como esta y si obtiene algún error, no dude en comentar a continuación

0
Habin Lama 21 oct. 2019 a las 11:04