gpt4 book ai didi

arrays - 按日期对数组中的对象排序

转载 作者:IT王子 更新时间:2023-10-29 05:01:52 25 4
gpt4 key购买 nike

我有一个数组,其中包含一个名为 HistoryObject 的对象,它具有诸如“日期”、“名称”等属性。

我正在对数组进行排序:

 let sortedArray = HistoryArray.sort({ $0.date.compare($1.date) == NSComparisonResult.OrderedDescending})

应该将日期从新到旧排序。例如:

  • 2016 年 6 月 30 日
  • 2016 年 6 月 29 日

等..

但是当我的数组包含“2016 年 7 月 2 日”时,排序后的数组变为:

  • 2016 年 6 月 30 日
  • 2016 年 6 月 29 日
  • 2016 年 7 月 2 日

“2016 年 7 月 2 日”在排序后应该在顶部的位置,现在它在底部?我该如何解决这个问题?

最佳答案

使用 Swift 4 和 Swift 3

let testArray = ["25 Jun, 2016", "30 Jun, 2016", "28 Jun, 2016", "2 Jul, 2016"]
var convertedArray: [Date] = []

var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MM, yyyy"// yyyy-MM-dd"

for dat in testArray {
let date = dateFormatter.date(from: dat)
if let date = date {
convertedArray.append(date)
}
}

var ready = convertedArray.sorted(by: { $0.compare($1) == .orderedDescending })

print(ready)

使用 Swift 2

例如,您有包含日期​​的数组和另一个 1 数组,您将在其中保存转换后的日期:

var testArray = ["25 Jun, 2016", "30 Jun, 2016", "28 Jun, 2016", "2 Jul, 2016"]
var convertedArray: [NSDate] = []

之后我们转换日期:

var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MM, yyyy"// yyyy-MM-dd"

for dat in testArray {
var date = dateFormatter.dateFromString(dat)
convertedArray.append(date!)
}

结果:

var ready = convertedArray.sort({ $0.compare($1) == .OrderedDescending })

print(ready)

关于arrays - 按日期对数组中的对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38168594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com