Как вы отображаете дату в этом формате? "18 июля 2018 года в 10:02"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.date(from: "2018-07-18T17:02:02.614Z")
напечатано описание даты: 2015-06-18 17:02:02 +0000 Playground, естественно, выводит это на правой стороне: "18 июня 2015 в 10:02 AM"
Как мне отформатировать это, чтобы отобразить это? "18 июля 2018 года в 10:02"
Спасибо!
1 ответ
Вам нужно отформатировать date
(который сейчас Date
экземпляр) с использованием другого DateFormatter
, И вы должны использовать стили даты и времени, а не фиксированный формат для этого.
И "UTC" - это не локаль, это часовой пояс. Но тебе это не нужно. Но вы должны использовать специальный язык en_US_POSIX
при разборе строки даты фиксированного формата.
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.date(from: "2018-07-18T17:02:02.614Z")
if let date = date {
let outputFormatter = DateFormatter()
outputFormatter.dateStyle = .medium
outputFormatter.timeStyle = .short
let output = outputFormatter.string(from: date)
print(output)
}
Выход:
18 июля 2018 года в 11:02
Обратите внимание, что время будет зависеть от вашего местного часового пояса. По умолчанию вывод будет осуществляться по местному времени, поэтому не ожидайте, что вывод будет 17:02
так как это время в часовом поясе UTC.