DateFormatter date from string devuelve nil
Por alguna razón, algunos dispositivos no pueden convertir una cadena en una fecha.
Este es mi código de conversión de fecha:
func dateFromString(string: String) -> Date? {
let f = DateFormatter.init()
f.dateFormat = "yyyy-MM-dd HH:mm:ss"
return f.date(from: string)
}
Ahora, a través de mi plataforma de análisis, capturo cuando este regreso es nulo. No tengo idea de por qué. Supongo que tiene algo que ver con la configuración local y quizás de la zona horaria o 12 / 24h, pero no puedo entender cuál es el problema.
Más detalles...
He seguido la siguiente configuración que causa un retorno nulo:
zona horaria - Asia / Muscat
local - es_ES
cadena - "2016-12-18 08:31:43"
Pero cuando ejecuto esto en el patio de recreo obtengo una fecha válida:
let f = DateFormatter.init()
f.dateFormat = "yyyy-MM-dd HH:mm:ss"
f.locale = Locale.init(identifier: "en_GB")
f.timeZone = TimeZone.init(identifier: "Asia/Muscat")
let s = f.date(from: "2016-12-18 08:31:43")
"18 de diciembre de 2016, 6:31 a.m."
¿Qué causa que DateFromatter regrese nulo?