Как преобразовать строку в объект DateTime с именем месяца, флаттером даты и года? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть строка типа «20 апреля 2020 года». Я хочу преобразовать строку в DateTime ().

Проблема, с которой я сталкиваюсь, заключается в том, что DateTime.parse () не принимает название месяца.

Ответы [ 3 ]

1 голос
/ 14 апреля 2020

Эти типы форматов даты не поддерживаются DateTime parse . Для этого вы можете использовать пакет intl .

var dateString    = 'April 20, 2020';
DateFormat format = new DateFormat("MMMM dd, yyyy");
var formattedDate = format.parse(dateString);
1 голос
/ 14 апреля 2020

Вы можете создать список, содержащий имена всех месяцев, затем вы можете выполнить операции разделения и найти указанную c часть строки, а затем сложить все вместе в DataTime.

Следующий код очистит вашу идею.

String sdata = 'April 20, 2020';

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

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 голосов
/ 14 апреля 2020

Попробуйте intl dart package.

DateTime _parseDateStr(String inputString) {
  DateFormat format = DateFormat.yMMMMd();
  return format.parse(inputString);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...