1

I have this list of maps.

[
{title: 'Avengers', release_date: '13/07/2020'},
{title: 'Creed', release_date: '13/07/2020'}
{title: 'Jumanji', release_date: '30/07/2020'},]

I would like to write a code that would group the list of movies by release_date like that.

[
   {
      DateTime(2020, 7, 13): [
        {
          "title" :  " Avengers"
         },
        {
          "title" : "Creed" 
        }
      ]

   },
{
      DateTime(2020, 7, 30): [
        {
          "title" :  " Jumanji"
         },
        
      ]

   },
]
jamesdlin
  • 81,374
  • 13
  • 159
  • 204
SAFRINGG
  • 131
  • 1
  • 1
  • 3
  • 2
    Does this answer your question? [Flutter/Dart how to groupBy list of maps](https://stackoverflow.com/questions/54029370/flutter-dart-how-to-groupby-list-of-maps) – Aldy Yuan Aug 19 '20 at 03:51
  • There is an answer to this question, take a look here, https://stackoverflow.com/a/54036449/10498374 – farouk osama Aug 19 '20 at 03:51

1 Answers1

0

Don't use the DateTime object as key, instead convert it to UNIX time and use that as your map key.

DateTime releaseDate = DateTime(2020, 7, 30);
String dateKey = release.millisecondsSinceEpoch.toString()
// dateKey = 1596047400000

Use .toUtc() in case if you want to convert the date to UTC date.

DateTime releaseDate = DateTime(2020, 7, 30);
String dateKey = release.toUtc().millisecondsSinceEpoch.toString()
// dateKey = 1596047400000

And keep your original date time object at a property of your movie map.

[
    {
        '1594578600000': {
            {
                'title': 'Avengers',
                'releaseDate': DateTime(2020, 7, 13)
            },
            {
                'title': 'Creed',
                'releaseDate': DateTime(2020, 7, 13)
            }
        }
   }
]
Aziz Kaukawala
  • 320
  • 3
  • 7