Получить текущее время в формате даты - PullRequest
0 голосов
/ 03 ноября 2018

Мне нужно текущее время, чтобы сравнить с моим временем сервера. Я получил правильное время в строковом формате с этим кодом.

let dateFormatter = DateFormatter()
 dateFormatter.dateFormat = "H:mm"
 let datestring = dateFormatter.string(from: Date())

Но когда я снова преобразовал строку в формат даты, он показал неправильный результат.

Строка с даты

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "H:mm"
let datestring = dateFormatter.string(from: Date())

Результат: 15: 30

Дата из строки

let dateFormatter1 = DateFormatter()
 dateFormatter1.dateFormat = "H:mm"
 dateFormatter.timeStyle = .short
 dateFormatter.timeZone = TimeZone.current
 let dateFromString: Date? = dateFormatter1.date(from: datestring)

Результат: 2000-01-01 10:00:00 + 0000

1 Ответ

0 голосов
/ 03 ноября 2018

dateFromString правильно. Помните, что даты всегда печатаются с использованием UTC, а не вашего часового пояса. Так что 10:00 UTC на самом деле 3:30 вечера в вашем часовом поясе. Вы предоставляете только время 15:30 для dateFormatter1. Другие компоненты даты (год, месяц, день, секунды) используются по умолчанию для экземпляра DateFormatter.

...