Могу ли я использовать NSISO8601DateFormatter для анализа строки ISO-8601? - PullRequest
0 голосов
/ 26 ноября 2018

Foundation в macOS 10.12 имеет новый класс NSISO8601DateFormatter, который утверждает, что может анализировать ISO-8601, но у меня возникают проблемы с пониманием, как его использовать.

Требуется .formatOptions, который, как он говорит, также используется для разбора.Разве не весь смысл ISO-8601 в том, что это однозначный формат?

Например, это работает:

let f = ISO8601DateFormatter()
f.formatOptions = [.withFullDate]
f.date(from: "2018-11-26")  // a Date

, но игнорирует время:

let f = ISO8601DateFormatter()
f.formatOptions = [.withFullDate]
f.date(from: "2018-11-26T18:07:13Z")  // a Date but wrong

Если я добавлю .withFullTime, это работает, но тогда первый пример завершится неудачей.

Как мне проанализировать ISO-8601 с NSISO8601DateFormatter?Нужно ли мне предварительно проанализировать его самостоятельно, чтобы выяснить, какой подформат ISO-8601 он использует?

...