Свифт 3
extension Date {
func toString(template: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: template, options: 0, locale: NSLocale.current)
return formatter.string(from: self)
}
}
Использование
let now = Date()
let nowStr0 = now.toString(template: "EEEEdMMM") // Tuesday, May 9
let nowStr1 = now.toString(template: "yyyy-MM-dd") // 2017-05-09
let nowStr2 = now.toString(template: "HH:mm:ss") // 17:47:09
Играть с шаблоном, чтобы соответствовать вашим потребностям. Примеры и документ здесь , чтобы помочь вам создать нужный шаблон.
Примечание
Вы можете кэшировать свой DateFormatter
, если планируете использовать его, например, в TableView
.
Чтобы дать представление, зацикливание более 1000 дат заняло у меня 0,5 с с использованием вышеуказанной функции toString(template: String)
, по сравнению с 0,05 с с использованием myFormatter.string(from: Date)
.