Функция даты, возвращающая неверный результат - PullRequest
0 голосов
/ 05 апреля 2019

Я не могу найти эквивалентный ответ, который разрешает для меня Например,

Пожалуйста, смотрите код. Я форматирую входящую строку (элемент [9]), загруженную с веб-службы.

var cal_end_date: Date!

var dateFormatter = DateFormatter ()

let tempEndDate = item[9]

print("item[9]", item[9]) // 20190331
print("tempEndDate", tempEndDate) //20190331

dateFormatter.dateFormat = "YYYYMMDD"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone.autoupdatingCurrent

cal_end_date = dateFormatter.date(from:tempEndDate)!
print(#function, "cal_end_date:", cal_end_date!) //2019-01-31 05:00:00 +0000    

Дата окончания имеет неправильный месяц! Я подтвердил этот результат, запустив код на игровой площадке с фиксированной датой. Я что-то здесь не так делаю? Что-то изменилось в Swift 5? Спасибо

1 Ответ

1 голос
/ 05 апреля 2019

Вы всегда можете использовать nsdateformatter.com , чтобы проверить правильность dateFormat для вашего форматера (рядом с Примеры check Reference , который показывает вам что каждая буква / буквы представляют).

В вашем случае вы должны быть внимательны к регистру dateFormat. Дни и годы обозначены маленькими буквами

dateFormatter.dateFormat = "yyyyMMdd"
...