У меня следующая проблема. Предположим, что я получаю от сервера строку, содержащую дату и время в следующем формате:
yyyy-MM-dd'T'HH:mm:ssxxxx
Это время даты сервера, и я хотел бы отобразить его в приложении как есть. Итак, если я получаю дату и время:
2017-04-07T10:29:23+ 02:00
значит на сервере есть 10:29:23 (08:29:23 UTC)
и я хотел бы отобразить его в приложении как:
04.07.2017 10:29:23
но всякий раз, когда я пытаюсь преобразовать строку в NSDate, я получаю дату, преобразованную в UTC, что нежелательно, потому что я теряю информацию о часовом поясе сервера. Я использую следующий код прямо сейчас:
let formatter = NSDateFormatter()
formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxxx"
let date = formatter.dateFromString(dateString)
Как я могу добиться этого в Swift (2.3)?
Заранее спасибо.
print
дату, вы получите UTC. Попробуйте на детской площадке. Два примечания:xxxx
можно заменить наZ
, а в строке даты не должно быть пробела между знаком плюс/минус и значением часового пояса. - person vadian   schedule 07.04.2017replaceOccurrencesOfString
иRegularExpression
). - person vadian   schedule 07.04.2017