У меня есть строка типа «20 апреля 2020 г.». Я хочу преобразовать строку в DateTime().
Проблема, с которой я столкнулся, заключается в том, что DateTime.parse() не принимает название месяца.
У меня есть строка типа «20 апреля 2020 г.». Я хочу преобразовать строку в DateTime().
Проблема, с которой я столкнулся, заключается в том, что DateTime.parse() не принимает название месяца.
Этот тип формата даты не поддерживается анализом DateTime. Для этого можно использовать пакет intl.
var dateString = 'April 20, 2020';
DateFormat format = new DateFormat("MMMM dd, yyyy");
var formattedDate = format.parse(dateString);
Попробуйте intl пакет dart.
DateTime _parseDateStr(String inputString) {
DateFormat format = DateFormat.yMMMMd();
return format.parse(inputString);
}
Вы можете создать список, содержащий названия всех месяцев, затем вы можете выполнить операции разделения и найти определенную часть строки, а затем собрать все вместе в DataTime.
Следующий код очистит вашу идею.
String sdata = 'April 20, 2020';
List<String> months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'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);