A data DateFormatter da string retorna nulo
Por algum motivo, alguns dispositivos falham ao converter uma string em uma data.
Este é o meu código de conversão de datas:
func dateFromString(string: String) -> Date? {
let f = DateFormatter.init()
f.dateFormat = "yyyy-MM-dd HH:mm:ss"
return f.date(from: string)
}
Agora, através da minha plataforma de análise, capturo quando esse retorno é nulo. Eu não tenho idéia do porquê. Suponho que tenha algo a ver com as configurações locais e talvez o fuso horário ou as 12 / 24h, mas não consigo descobrir qual é o problema.
Mais detalhes...
Acompanhei as seguintes configurações que causam um retorno nulo:
fuso horário - Ásia / Mascate
local - pt_BR
string - "2016-12-18 08:31:43"
Mas quando executo isso no playground, recebo uma data 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 dezembro de 2016 às 06h31"
O que faz com que o DateFromatter retorne nulo?