2016-11-15 1 views
0

Я знаю, как преобразовать значение в этом формате (2016-11-02 05:45:05.000000) в дату в Swift3, но я не могу понять, почему время, которое выплевывается из печати команда отключена от оригинала? От чтения это может быть установка его в другой часовой пояс, но если это так, как я могу вернуть его обратно в исходное время?Преобразование конкретных строк даты в Swift 3 Дата при настройке для TimeZone

Это неверно выглядит так, как показано ниже для образца времени, указанного выше. Обратите внимание, что это отключено на многие часы.

2016-11-02 12:45:05 +0000 

Вот мой код и изображение консольных команд печати.

let dateString : String  = task["created"]!.asDictionary!["date"]!.asString! 

       let dateFormatter = DateFormatter() 
       dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSSSS" 

       let date = dateFormatter.date(from: dateString) 

       print(name) 
       print("\(id)") 
       print(desc) 
       print(dateString) 
       print(date!) 

enter image description here

Пожалуйста, обратитесь к изображению.

+0

«Работу с фиксированным форматом Дата представлением» https://developer.apple.com/reference/foundation/nsdateformatter – Alexander

+0

Пожалуйста, дайте мне знать, почему отрицательный голос, так что я может решить вопрос, на этот раз я поставил гораздо больше усилий на этот вопрос. Я считаю, что это законная проблема, которую многие пользователи будут иметь. –

+0

Я не понимаю, что искать в ссылке, которую вы предоставили, вы можете уточнить, это сложно из-за .000000 в конце, я не понимаю, как работать с ним на самом деле. Я не могу сказать, все ли микросекунды или если всего 4 цифры - микросекунды, а другие 00 - что-то еще? Также Александр Морнчов, если вы проиграли, этот вопрос сильно отличается от другого, и я удалил этот вопрос, так как у него действительно был дублированный ответ. В этом случае я не вижу дубликата. –

ответ

2

Вы должны установить часовой пояс:

dateFormatter.timeZone = TimeZone(secondsFromGMT: 0) 
+0

Это сработало для меня. –

+3

Обратите внимание, что это должно выполняться только в том случае, если строка представляет время UTC. Если строка представляет собой локальное время, то это решение неверно. – rmaddy

Смежные вопросы