如何使用 DateTime 键 (Swift 4) 对 NSDictionary 数组进行排序?
How to Sort an Array of NSDictionary using DateTime key (Swift 4)?
我有一个 NSDictionary 的 NSArray
let Array = (
{ name = "Auni";
age = "24";
transactionTime = "01-02-2011 12:32:39" },
{ name = "Atiqah";
age = "23";
transactionTime = "02-02-2013 10:32:41" },
{ name = "Aida";
age = "22";
transactionTime = "04-02-2020 18:32:21"})
如何按最近的交易时间对这个数组进行排序?使用 Swift4.
谢谢。
编辑:让后端人员为您做这件事更容易。
不需要转成Date
对象,dateStrings直接比较也可以。
array.sort { (dict1, dict2) -> Bool in
/// Considering "transactionTime" key always exists.
let transactionTime1 = dict1["transactionTime"]!
let transactionTime2 = dict2["transactionTime"]!
/// Sort in descending order
return transactionTime1 > transactionTime2
}
如果您需要对日期对象进行一些计算,那么您还可以在 运行 时间将字符串转换为日期对象,如下例所示:
let df = DateFormatter()
df.dateFormat = "dd-MM-yyyy HH:mm:ss"
array.sort { (dict1, dict2) -> Bool in
/// Considering "transactionTime" key always exists.
let transactionTime1 = dict1["transactionTime"]!
let transactionTime2 = dict2["transactionTime"]!
let date1 = df.date(from: transactionTime1)!
let date2 = df.date(from: transactionTime2)!
/// Sort in descending order
return date1 > date2
}
print(array)
输出
[["transactionTime": "04-02-2020 18:32:21", "name": "Aida", "age": "22"], ["transactionTime": "02-02-2013 10:32:41", "name": "Atiqah", "age": "23"], ["transactionTime": "01-02-2011 12:32:39", "name": "Auni", "age": "24"]]
我有一个 NSDictionary 的 NSArray
let Array = (
{ name = "Auni";
age = "24";
transactionTime = "01-02-2011 12:32:39" },
{ name = "Atiqah";
age = "23";
transactionTime = "02-02-2013 10:32:41" },
{ name = "Aida";
age = "22";
transactionTime = "04-02-2020 18:32:21"})
如何按最近的交易时间对这个数组进行排序?使用 Swift4.
谢谢。
编辑:让后端人员为您做这件事更容易。
不需要转成Date
对象,dateStrings直接比较也可以。
array.sort { (dict1, dict2) -> Bool in
/// Considering "transactionTime" key always exists.
let transactionTime1 = dict1["transactionTime"]!
let transactionTime2 = dict2["transactionTime"]!
/// Sort in descending order
return transactionTime1 > transactionTime2
}
如果您需要对日期对象进行一些计算,那么您还可以在 运行 时间将字符串转换为日期对象,如下例所示:
let df = DateFormatter()
df.dateFormat = "dd-MM-yyyy HH:mm:ss"
array.sort { (dict1, dict2) -> Bool in
/// Considering "transactionTime" key always exists.
let transactionTime1 = dict1["transactionTime"]!
let transactionTime2 = dict2["transactionTime"]!
let date1 = df.date(from: transactionTime1)!
let date2 = df.date(from: transactionTime2)!
/// Sort in descending order
return date1 > date2
}
print(array)
输出
[["transactionTime": "04-02-2020 18:32:21", "name": "Aida", "age": "22"], ["transactionTime": "02-02-2013 10:32:41", "name": "Atiqah", "age": "23"], ["transactionTime": "01-02-2011 12:32:39", "name": "Auni", "age": "24"]]