В моей базе данных coredatabase у меня есть объект новостей с атрибутом NSDate. Мое приложение доступно по всему миру.Преобразование NSDate в String с определенным часовым поясом в SWIFT
News был опубликован 2015-09-04 22:15:54 +0000 французского час (GMT +2)
Чтобы сохранить дату, преобразовать его в формате UTC.
let mydateFormatter = NSDateFormatter()
mydateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00"
mydateFormatter.timeZone = NSTimeZone(abbreviation: "UTC")
var dateToSaved : NSDate! = mydateFormatter.dateFromString(date)
Новости записывается с датой: 2015-09-04 20:15:54 +0000 (UTC)
Позже в приложение, мне нужно, чтобы преобразовать этот NSDate сохранить в строки :
let mydateFormatter = NSDateFormatter()
mydateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00"
var dateInString:String = mydateFormatter.stringFromDate(date)
Все отлично работает, если я запустить приложение в том же часовом поясе, когда я опубликовал новость т.е. GMT + 2.
Если я изменяю часовой пояс своего устройства, например UTC-4, а затем конвертирую NSDate в String, дата не совпадает. Я получил: 2015-09-04 16:15:54 +0000
Как получить ту же самую дату UTC, что и в моей базе данных по любому часовому поясу?
Мне не очень нравится часовой пояс, но я думаю, что моя проблема исходит от «+0000» в NSDate. Во все мои даты, всегда есть +0000, я думаю, это должен быть правильный часовой пояс. Но я не знаю, как это сделать.
Привет .... @LeoDabus Я пытаюсь преобразовать строку в дату. А вот мой код: 'пусть aDate: String = "10 ноября 2016" пусть dateFormatter = DateFormatter() dateFormatter.calendar = Календарь (идентификатор: .iso8601) dateFormatter.locale = Locale (идентификатор:«en_US_POSIX ") dateFormatter.dateFormat = "дд MMMM, YYYY" //dateFormatter.timeZone = TimeZone (идентификатор: "UTC") пусть EVENTDATE = dateFormatter.date (от: aDate) dateFormatter.dateFormat =" МММ дд, YYYY " aLblDate.text = dateFormatter.string (from: eventDate!) print (" Date: \ (aLblDate.text) ") // он печатает« Dec 28, 2015 »' – VRAwesome
В комментарии я не могу форматировать код. Простите за это. Пожалуйста, предложите мне, если что-то не так. – VRAwesome
Вам нужно использовать yyyy вместо YYYY –