我有一个包含一个称为的对象的数组HistoryObject,它具有诸如“日期”,“名称”等属性。
HistoryObject
我正在对数组进行排序,如下所示:
let sortedArray = HistoryArray.sort({ $0.date.compare($1.date) == NSComparisonResult.OrderedDescending})
应该将日期从新到旧排序。例如:
等等..
但是,当我的数组包含“ 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)