swift - 对对象中的字符串日期进行排序

标签 swift sorting

我有 TableView ,其中包含“从、到、操作、日期和描述”等数据。现在我得到的日期是字符串格式,我需要按日期从最新日期到较早日期对消息进行排序,我尝试了排序代码,但它只对前两个字符进行排序。 例如:tSFDATE 有字符串“11/01/2010”、“01/02/2010”。结果将是

“01/02/2010”、“11/01/2010”。 所以任何按日期排序 TrackObj 的解决方案

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! TrackingTableViewCell

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd/MM/yyyy - hh:mm:ss"


        let sortedArray = self.trackingListArr.sorted { dateFormatter.date(from: $0.tSFDATE!)! < dateFormatter.date(from: $1.tSFDATE!)! }


        let trackObj = sortedArray[indexPath.row]


            cell.lblFromValue.text = trackObj.fROMUSERAR!

            cell.lblToValue.text = trackObj.tOUSERAR!

            cell.lblPurpsValue.text = trackObj.tSFPURPOSEAR!

            cell.lblDateValue.text = trackObj.tSFDATE!

            cell.lblNoteValue.text = trackObj.tSFDESCRIPTION!

    return (cell)

}

这是结果图 enter image description here

最佳答案

您正在尝试对字符串而不是日期进行排序。要正确排序,您首先需要将 tSFDATE 字符串转换为 Date,然后对其进行排序。

这应该适用于您现有的阵列...

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy - HH:mm:ss"

let sortedArray = trackingListArr.sorted { (lhs: trackingListArr, rhs: trackingListArr) -> Bool in
    // you can have additional code here
    return dateFormatter.date(from: lhs.tSFDATE)! > dateFormatter.date(from: rhs.tSFDATE)!
}

编辑:紧凑的闭包声明

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy - HH:mm:ss"

let sortedArray = trackingListArr.sorted { dateFormatter.date(from: $0.tSFDATE)! < dateFormatter.date(from: $1.tSFDATE)! }

编辑 2:将 dateFormat 更改为 "dd/MM/yyyy - HH:mm:ss" 以处理 24 小时制。

关于swift - 对对象中的字符串日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48182129/

相关文章:

c - 如何对二维矩阵进行排序

ruby-on-rails - sort_by 在 Rails 中使用 boolean 值

swift - 覆盖属性观察者

ios - 如何让 NSAttributedString 的下划线样式属性起作用?

ios - 向上滚动时动态显示文本从服务器获取数据

javascript - 按 "width x height"模式对数组进行排序

javascript - JavaScript 或 jQuery 可以根据多个条件对 JSON 数组进行排序吗?

swift - 如何让这个 UIButton 的 action 正确运行?

ios - 如何在 SwiftUI 中制作内阴影

按特定顺序对 data.table 中的行重新排序