如何对代表月份和年份的字符串进行排序?

Edo*_*oli 2 arrays sorting string swift3

我的代码中包含一个字符串数组,这些字符串代表几年中的几个月。像这样:

let arrayOfMonths = ["May 2017", "January 2018", "August 2016", "January 2015", "June 2017"]
Run Code Online (Sandbox Code Playgroud)

我想按照几个月和几年的经典顺序进行排序,所以我想要这样的输出:

let sortedArrayOfMonths = ["January 2015", "August 2016", "May 2017", "June 2017", "January 2018"]
Run Code Online (Sandbox Code Playgroud)

如何在Swift 3中做到这一点?谢谢。

vad*_*ian 5

为什么不简单

let formatter : DateFormatter = {
    let df = DateFormatter()
    df.locale = Locale(identifier: "en_US_POSIX")
    df.dateFormat = "MMMM yyyy"
    return df
}()

let arrayOfMonths = ["May 2017", "January 2018", "August 2016", "January 2015", "June 2017"]

let sortedArrayOfMonths = arrayOfMonths.sorted( by: { formatter.date(from: $0)! < formatter.date(from: $1)! })
Run Code Online (Sandbox Code Playgroud)