在swift中排序列表年份(YYYY和YYYY-MM)

时间:2015-01-30 15:44:02

标签: ios sorting swift

我正在尝试对包含格式年份值的列表进行排序。

例如:

[2020,2013,2014,2001-06,2001-01,1999,2011]

我想以这种方式订购:

[1999,2001-01,2001-06,2011,2013,2014,2020]

我做了一些研究,发现用Ascendendig顺序对列表进行排序:

listYearData.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }`

但是这种方式似乎只订购了年份的值(2000,2001,2002),但是当他以这种格式满足日期时:“2000-01 2000-03”不是订单

修改

代码的结果是:

[1999,2001-06,2001-01,2011,2013,2014,2020]

2 个答案:

答案 0 :(得分:1)

由于您的数据格式,lexigraphic(字母)排序将完全符合您的预期:

println("\(dates.sorted(<))")

的产率:

[1999, 2001-01, 2001-06, 2011, 2013, 2014, 2020]

这是格式化YYYY-MM-DD的主要优势之一。

答案 1 :(得分:0)

也许你可以使用正则表达式&#39; \ d {4}&#39;和&#39; \ d {2}&#39;抓住&#39; yyyy&#39; MM&#39;然后对它进行排序,如果它是字符串。