listflutterdictionarydart

How to Sort time as String inside a List of Maps - Dart/Flutter


List of Maps :

void main() {
  List place = [
    {"place": "India", "time": "10:30"},
    {"place": "China", "time": "5:10"},
    {"place": "Nepal", "time": "11:0"},
    {"place": "Pakistan", "time": "4:30"},
  ];
}

Desired Output:

Pakistan : 4.30

China : 5.10

India : 10.30

Nepal : 11.0


Solution

  • void main() {
      List place = [
        {"place": "India", "time": "10:30:00"},
        {"place": "China", "time": "05:10:00"},
        {"place": "Nepal", "time": "11:00:00"},
        {"place": "Pakistan", "time": "04:30:00"},
      ];
      
      place.sort((a, b) => DateTime.parse("2022-02-20 " + a['time']).compareTo(DateTime.parse("2022-02-20 " + b['time'])));
      print(place.toString());
    }
    

    Print result:

    [{place: Pakistan, time: 04:30:00}, {place: China, time: 05:10:00}, {place: India, time: 10:30:00}, {place: Nepal, time: 11:00:00}]