我有一个这样的列表:
var orderedEvents = [
{
"realTime": "2021-07-28 12:00:02.000" // Flutter dateTime but saved as String
},
{
"realTime": "2021-07-28 12:00:00.000"
},
{
"realTime": "2021-07-28 12:00:01.000"
}
];
我这样做:
orderedEvents.sort((a, b) {
final realTimeA = DateTime.parse(a["realTime"]);
final realTimeB = DateTime.parse(b["realTime"]);
return realTimeA.isBefore(realTimeB) ? -1 : 1;
});
但是它没有正确地获得 0、2 和 1。
答案 0 :(得分:1)
首先确保从字符串转换为日期时间。
之后,只需使用以下内容:
orderedEvents.sort((a,b) {
final realTimeA = DateTime.parse(a["realTime"]);
final realTimeB = DateTime.parse(b["realTime"]);
return realTimeA.compareTo(realTimeB);
});