Если вам необходимо игнорировать часовой пояс, указанный в строке метки времени, и заменить его идентификатором часового пояса, вы можете использовать код, подобный следующему:
let timezone = "America/Los_Angeles"
let timestamp = "2019-01-25T11:55:00+00:00"
let df = DateFormatter()
df.timeZone = TimeZone(identifier: timezone)
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let date = df.date(from: String(timestamp.dropLast(6)))
Это устанавливает форматер даты с использованием дополнительного часового пояса при анализе временной метки, которая не имеет часового пояса (удаляется с помощью dropLast(6)
).
Этот код дает вам Date
, представляющее 25 января 2019 года в 11:55:00 в часовом поясе Лос-Анджелеса. Имейте в виду, что если вы просто напечатаете date
, вам будет показана дата в формате UTC. Это просто вывод печати Date
.
Обратите внимание, что на самом деле правильным решением является получение строки метки времени с правильным часовым поясом из API для начала. Вам не нужно прыгать через такие обручи, чтобы получить правильную метку времени.