DateFormatter date из строки возвращает ноль

По некоторым причинам некоторые устройства не могут преобразовать строку в дату.

Это мой код преобразования даты:

func dateFromString(string: String) -> Date? {
    let f = DateFormatter.init()
    f.dateFormat = "yyyy-MM-dd HH:mm:ss"
    return f.date(from: string)
}

Теперь, через мою аналитическую платформу, я фиксирую, когда это возвращает ноль. Понятия не имею, почему так. Я предполагаю, что это как-то связано с местными и, возможно, настройками часового пояса или 12 / 24ч, но я не могу понять, в чем проблема.

Подробнее ...

Я отслеживал следующие параметры, которые вызывают нулевой возврат:

часовой пояс - Азия / Маскат

местный - en_GB

строка - "2016-12-18 08:31:43"

Но когда я запускаю это на детской площадке, я получаю правильную дату:

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 декабря 2016 г., 6:31»

Что заставляет DateFromatter возвращать ноль?