从字符串转换后按日期排序的 RxSwift
RxSwift ordering by date after convertiing from string
我有一个我正在订阅的数组,这个数组中的对象有一个 属性 日期,以字符串的形式。我需要在这样的日期之前订购我从订阅中收到的数组,但如果它是一个字符串就无法做到,我认为需要在日期中转换该字符串然后使用它来订购它们。我知道如何从字符串转换为日期,但不知道在哪里做
对象喜欢
struct Task: codable {
var date = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
}
self.viewModel.tasks
.map({ items in
return items.sorted(by: { [=10=].date.compare(.date) == .orderedAscending })
})
.bind(to: self.tasksTableView.rx.items(dataSource: self.dataSource))
.disposed(by: self.rx.disposeBag)
如果您不想更改 date
的类型,那么请在 map
的闭包中进行所有操作。
tasks.map { tasks in
tasks.sorted(by: { lhs, rhs in
dateFormatter.date(from: lhs.date)!.compare(dateFormatter.date(from: rhs.date)!) == .orderedAscending
})
}
但是,我会更改 Task
类型以保存日期而不是字符串...
struct Task: Codable {
let date: Date
}
那么这会起作用:
tasks.map { tasks in
tasks.sorted(by: { [=12=].date.compare(.date) == .orderedAscending })
}
我有一个我正在订阅的数组,这个数组中的对象有一个 属性 日期,以字符串的形式。我需要在这样的日期之前订购我从订阅中收到的数组,但如果它是一个字符串就无法做到,我认为需要在日期中转换该字符串然后使用它来订购它们。我知道如何从字符串转换为日期,但不知道在哪里做
对象喜欢
struct Task: codable {
var date = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
}
self.viewModel.tasks
.map({ items in
return items.sorted(by: { [=10=].date.compare(.date) == .orderedAscending })
})
.bind(to: self.tasksTableView.rx.items(dataSource: self.dataSource))
.disposed(by: self.rx.disposeBag)
如果您不想更改 date
的类型,那么请在 map
的闭包中进行所有操作。
tasks.map { tasks in
tasks.sorted(by: { lhs, rhs in
dateFormatter.date(from: lhs.date)!.compare(dateFormatter.date(from: rhs.date)!) == .orderedAscending
})
}
但是,我会更改 Task
类型以保存日期而不是字符串...
struct Task: Codable {
let date: Date
}
那么这会起作用:
tasks.map { tasks in
tasks.sorted(by: { [=12=].date.compare(.date) == .orderedAscending })
}