какой формат я должен использовать для метки времени ISO в моем случае - PullRequest
0 голосов
/ 13 июня 2018

У меня есть строка метки времени в формате ISO 8061 " 2018-06-13T12: 11: 13 + 05: 00 ", как правильно создать Date объект из строки?

Я пытался:

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let myDate = formatter.date(from: "2018-06-13T12:11:13+05:00")

Но это не работает правильно, myDate отстает на один час.Какую строку формата мне следует использовать для такой отметки времени?

1 Ответ

0 голосов
/ 13 июня 2018

Для Формат часового пояса ISO 8601

использование ZZZZZ в заглавной буквы

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"

РЕДАКТИРОВАНИЕ

Проверьте следующий пример

Я только что изменил + 05: 30 с 05: 00

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
formatter.timeZone = TimeZone(identifier: "UTC")

let myDate = formatter.date(from: "2018-06-13T12:11:13+05:30")

formatter.dateFormat = "yyyy-MM-dd HH:mm"
formatter.timeZone = TimeZone.current
print(formatter.string(from: myDate!))

Выход

2018-06-13 12: 11

...