我正在尝试对包含格式年份值的列表进行排序。
例如:
[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]
答案 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;然后对它进行排序,如果它是字符串。