排序日期数组排序升序迅速

时间:2019-11-11 11:40:43

标签: ios swift

我正在尝试按升序对日期进行排序。我可以用"MM/dd/yyyy"格式解决日期,但是当更改为"dd mmm yyyy"格式时,我得到一个错误。

这有效

var dateArray = [Date]()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"

dateArray.append(dateFormatter.date(from: "09/04/2016")!)
dateArray.append(dateFormatter.date(from: "01/01/2000")!)
dateArray.append(dateFormatter.date(from: "12/12/1903")!)
dateArray.append(dateFormatter.date(from: "04/23/2222")!)
dateArray.append(dateFormatter.date(from: "08/06/1957")!)
dateArray.append(dateFormatter.date(from: "11/11/1911")!)
dateArray.append(dateFormatter.date(from: "02/05/1961")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}

但这不是

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd mmm yyyy"

dateArray.append(dateFormatter.date(from:"01 Mar 2017")!)
dateArray.append(dateFormatter.date(from: "03 Feb 2017")!)
dateArray.append(dateFormatter.date(from: "15 Jan 1998")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}

3 个答案:

答案 0 :(得分:3)

使用“ MMM”代替“ mmm”

MMM是月份m, mm的缩写,表示分钟数

请检查此网站https://nsdateformatter.com有助于了解NSDateFormatter

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"

dateArray.append(dateFormatter.date(from:"01 Mar 2017")!)
dateArray.append(dateFormatter.date(from: "03 Feb 2017")!)
dateArray.append(dateFormatter.date(from: "15 Jan 1998")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}

答案 1 :(得分:1)

您需要MMM的{​​{1}} isadad

mmm

答案 2 :(得分:0)

只需将格式从小写的“ mmm”更改为大写的“ MMM”,就像这样:

var dateArray = [Date]()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"

dateArray.append(dateFormatter.date(from:"01 Mar 2017")!)
dateArray.append(dateFormatter.date(from: "03 Feb 2017")!)
dateArray.append(dateFormatter.date(from: "15 Jan 1998")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}
相关问题