Строка на сегодняшний день с часовым поясом UT C - PullRequest
0 голосов
/ 06 апреля 2020

Я борюсь с Date, и я предполагаю, что TimeZone. В настоящее время я получаю из своего бэкэнда строку, подобную этой "2020-04-07", и когда я пытаюсь преобразовать ее в дату, она превращается в 2020-04-06 22:00:00 +0000. Я нахожусь в Испании (UTC + 2), которая, я думаю, поэтому она удаляет 2 часа?

Это мой форматер даты:

var dateFormatter: DateFormatter = {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd"
        dateFormatter.timeZone = TimeZone.current
        return dateFormatter
    }()

И я называю это dateFormatter.date(from: startDateString)

Я устанавливаю свой текущий часовой пояс, но, кажется, игнорирую его или я что-то упустил?

Я получил много ответов, но это всегда один и тот же результат.

Спасибо

1 Ответ

2 голосов
/ 06 апреля 2020

Объект Date не имеет внутренней локали / часового пояса. Это просто представляет момент времени. Если вы хотите видеть Date в виде строки в указанном c языковом / часовом поясе, вы должны использовать средство форматирования даты. Или есть descriptionWithLocale. Если вы используете print, он напечатает отладочное описание экземпляра Date в UT C.

...