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?

questionAnswers(1)

yourAnswerToTheQuestion