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 возвращать ноль?