我有一个包含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
进行分组?
答案 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
}