0
votes

Comment convertir une chaîne en objet DateTime avec le nom du mois, la date et l'année?

J'ai une chaîne comme "20 avril 2020". Je veux convertir la chaîne en DateTime ().

Le problème auquel je suis confronté est que DateTime.parse () n'accepte pas le nom du mois.


0 commentaires

3 Réponses :


2
votes

Vous pouvez créer une liste contenant le nom de tous les mois, puis effectuer des opérations de fractionnement et rechercher une partie spécifique de la chaîne, puis les rassembler dans DataTime.

Le code suivant effacera votre idée.

String sdata = 'April 20, 2020';

  List<String> months = [
    'January',
    'February',
    'March',
    'April',
    'May',
    'June',
    'July',
    'September',
    'October',
    'November',
    'December'
  ]; 

DateTime _dateTime = DateTime(
        int.parse(sdata.substring(sdata.length - 4, sdata.length)),
        months.indexOf(sdata.split(' ')[0]) + 1,
        int.parse(sdata.substring(sdata.length - 8, sdata.length - 6)));
    print(_dateTime);


0 commentaires

2
votes

Ce type de format de date n'est pas pris en charge par l' analyse DateTime . Vous pouvez utiliser le package intl pour y parvenir.

var dateString    = 'April 20, 2020';
DateFormat format = new DateFormat("MMMM dd, yyyy");
var formattedDate = format.parse(dateString);


0 commentaires

1
votes

Essayez le package intl dart.

DateTime _parseDateStr(String inputString) {
  DateFormat format = DateFormat.yMMMMd();
  return format.parse(inputString);
}


0 commentaires