Я только что нашел странную проблему. Я попытался разобрать недопустимую дату, например 1999-02-31 23:30:00
, используя NSDateFormatter
.NSDateFormatter с недопустимыми датами
var str = "1999-02-31 23:30:00"
var f = DateFormatter()
f.dateFormat = "yyyy-MM-dd HH:mm:ss"
f.locale = Locale(identifier: "it")
// f.calendar = Calendar.current
f.timeZone = TimeZone(identifier: "Europe/Rome")!
let parsedDate = f.date(from: str)
В результате nil
если вы разобрать его без установки календаря; после того, как вы установили его, результатом будет дата, скорректированная на дополнительный день, добавленный к неправильной дате (3 марта 1999 г.).
Это известная проблема или я что-то упускаю?