Flutter Invalid date format 24-09-2022

Viewed 31
//for date comparison
                              DateTime stdt = DateTime.parse(postList.startDate.toString());
                              DateTime endt = DateTime.parse(postList.endDate.toString());
                              DateTime crdt = DateFormat('dd-MM-yyyy').format(DateTime.now()) as DateTime;



                              if (stdt.isAtSameMomentAs(endt)){
                                if(stdt.isBefore(crdt)){
                                  setState(() {
                                    ComparisonText = "Past";
                                    ContainerColor = Colors.red;
                                  });
                                }
                                else if (stdt.isAfter(endt)){
                                  setState(() {
                                    ComparisonText = "Upcoming";
                                    ContainerColor = Colors.yellow;
                                  });
                                }
                                else{
                                  setState(() {
                                    ComparisonText = "Ongoing";
                                    ContainerColor = Colors.yellow;
                                  });
                                }
                              } else{
                                if(stdt.isBefore(crdt)){
                                  if(endt.isBefore(endt)){
                                    setState(() {
                                      ComparisonText = "Past";
                                    });
                                  }
                                } else if (stdt.isAtSameMomentAs(endt)){
                                  setState(() {
                                    ComparisonText = "Ongoing";
                                  });
                                }else{
                                  setState(() {
                                    ComparisonText = "Upcoming";
                                  });
                                }
                              }

I have custom date format and i want to compare date but i am getting this error??? please help?

I am new in flutter and i want compare date for showing schedule is past, upcoming or is Ongoing.

3 Answers

Perhaps you need specify the timeformat before parsing. So you could try replacing

DateTime stdt = DateTime.parse(postList.startDate.toString());
DateTime endt = DateTime.parse(postList.endDate.toString());

with

DateTime stdt = DateFormat("dd-MM-yyyy").parse(postList.startDate.toString())); 
DateTime endt = DateFormat("dd-MM-yyyy").parse(postList.endDate.toString()));

DateFormat().format( returns a string .

You have to parse the string to date .

final formattedString =DateFormat('dd-MM-yyyy').format(DateTime.now());
final myDate = DateTime.parse(formattedString)
Related