Я относительно новичок в разборе строки времени ObjectMapper и столкнулся с огромной проблемой. У меня есть сервер, отправляющий мне временную строку в формате «гггг-ММ-дд'ТЧЧ: мм: сс.ССЗ», которую я должен анализировать в своем объекте Date локально. Мой сервер отправляет мне дату в местном часовом поясе, то есть по Гринвичу + 8, поэтому предположим, что я получаю «2018-08-23T15: 02: 44.000Z» с сервера. Мне нужно сохранить это именно так, как это в моем файле области. Я использую следующий код для преобразования:
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSZ"
formatter.timeZone = TimeZone.current
recordDateTime <- (map["record_time"], DateFormatterTransform(dateFormatter: formatter))
Но проблема в том, что объект даты, сохраняемый в области, - 2018-08-23 11:02:44 PM. Я полагаю, что DateFormatterTransform принимает строки даты в зоне GMT, и поэтому он конвертирует ее в мой местный часовой пояс, т.е. GMT + 8. В любом случае я могу установить часовой пояс для DateFormatterTransform вручную, чтобы я не получил сдвиг времени? Мы не можем изменить сервер в данный момент времени, так как база данных достаточно велика и уже хранит каждую дату в местном часовом поясе.
Подскажите, пожалуйста, как решить эту проблему. Спасибо