如何在Swift中按日期对数组进行分组?

时间:2018-06-14 06:49:32

标签: ios swift

我有一个包含date属性的模型。

我可以按Dictionary(grouping..

对日期进行分组
let grouped = Dictionary(grouping: orders.results, by: { $0.createdAt })

但问题在于解码时我做了这个:

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

所以我的Date财产也会占用时间。

我应该如何仅按yyyy-MM-dd进行分组?

2 个答案:

答案 0 :(得分:9)

您可以使用Calendar startOfDay

let cal = Calendar.current
let grouped = Dictionary(grouping: orders.results, by: { cal.startOfDay($0.createdAt) })

答案 1 :(得分:1)

我喜欢按天分组,因为按日期将时间间隔分组,并将此解决方案按日,月和年分组。

 let groupDic = Dictionary(grouping: arr) { (pendingCamera) -> DateComponents in
        print("group arr: \(String(describing: pendingCamera.date))")

        let date = Calendar.current.dateComponents([.day, .year, .month], from: (pendingCamera.date)!)

        return date
    }
相关问题