如何在 Swift 中将 time/date 的数组从旧到新排序?

How can I sort arrays of time/date from oldest to newest in Swift?

我有 array 个 dates/times。 (“8/28/15,2:38 PM”)我正在尝试按从最新到最旧的顺序排列 date/time。什么是最简单最有效的方法?

我想做一个 for in 循环并进行 if statement 检查它是在当前项目之前还是之后。但我相信有更好更有效的方法。

如何将 time/date 的数组从旧到新排序? (如果你需要我有的代码,我可以 post 它。

Array 有一个内置方法 sort 允许你提供一个闭包来对其中的对象进行排序。假设您的变量名为 dates,您可以像这样对其中的 NSDate 进行排序:

dates.sort { (a, b) -> Bool in
    a.earlierDate(b) == a
}

sort 方法反复要求您比较两个日期,询问您要先排序哪个日期。您可以使用 NSDateearlierDate 方法来查找最先出现的日期。

注意:如果您的数组实际上是由日期字符串组成而不是 NSDates,我建议您先将它们转换为 NSDates。

你可以用这个方法

NSArray *sortedArray;
    sortedArray = [unsorted_array sortedArrayUsingComparator:^NSComparisonResult(NSDate a, NSDate b) {
        return [a compare:b];
    }];