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.
3 Réponses :
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);
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);
Essayez le package intl dart.
DateTime _parseDateStr(String inputString) { DateFormat format = DateFormat.yMMMMd(); return format.parse(inputString); }