Я попробовал код predrag-samardzi c, и это сработало. Теперь, когда есть два варианта (для выполнения одной и той же работы), один с NSDateFormatter, а другой с SwiftDate, я подумал о профилировании их, чтобы увидеть, какой из них лучше. Вот код, который я использовал для их профилирования:
func testNSDateFormatter() {
for _ in 1...10000 {
print("\(Date().toLocalizedString())")
}
}
func testSwiftDate() {
for _ in 1...10000 {
print("\(Date().localizedDate.toString(.dateTime(.short)))")
}
}
extension Date {
func toLocalizedString(dateStyle: DateFormatter.Style = .short, timeStyle: DateFormatter.Style = .short) -> String {
return DateFormatter.localizedString(from: self, dateStyle: dateStyle, timeStyle: timeStyle)
}
var localizedDate: DateInRegion {
return self.in(region: Region(calendar: Calendar.current, zone: Zones.current, locale: Locale.current))
}
}
Вот скриншот из профилировщика.
Результат профилирование:
NSDateFormatter - 773x SwiftDate - 2674x
NSDateFormatter примерно в 3,45 раза быстрее, чем SwiftDate. Исходя из вышеизложенного, я бы рекомендовал использовать NSDateFormatter поверх SwiftDate.