Форматер даты - очень тяжелый объект, поэтому не делайте его локальным и попробуйте повторно использовать этот объект в приложении. Для этого вы можете сделать extension
из DateFormatter
и сделать в нем статическое свойство для этого форматера. Определите все средства форматирования в этом расширении. Чтобы использовать его просто где угодно в вашем приложении, сделайте расширение Date
и используйте его.
extension DateFormatter {
static let shortDate: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "MMM dd,yyyy hh:mm a"
return formatter
}()
}
extension Date {
/// Prints a string representation for the date with the given formatter
func string(with format: DateFormatter) -> String {
return format.string(from: self)
}
/// Creates an `Date` from the given string and formatter. Nil if the string couldn't be parsed
init?(string: String?, formatter: DateFormatter) {
guard let date = formatter.date(from: string ?? "") else { return nil }
self.init(timeIntervalSince1970: date.timeIntervalSince1970)
}
}
Используйте это в вашем update(with name: Model)
методе как:
let strDate = name.timestamp.string(with: .shortDate)
Теперь передайте strDate
в вашем ярлыке.
Если вы хотите преобразовать строку в дату, используйте метод string(with format: DateFormatter)
.