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 он использует?