【发布时间】:2023-03-09 16:03:01
【问题描述】:
我有像“2020 年 4 月 20 日”这样的字符串。我想将字符串转换为 DateTime()。
我面临的问题是 DateTime.parse() 不接受月份名称。
【问题讨论】:
我有像“2020 年 4 月 20 日”这样的字符串。我想将字符串转换为 DateTime()。
我面临的问题是 DateTime.parse() 不接受月份名称。
【问题讨论】:
您可以创建一个包含所有月份名称的列表,然后您可以执行拆分操作并找到字符串的特定部分,然后将所有内容放在 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);
【讨论】:
试试intl dart 包。
DateTime _parseDateStr(String inputString) {
DateFormat format = DateFormat.yMMMMd();
return format.parse(inputString);
}
【讨论】:
DateTime parse 不支持此类日期格式。您可以使用intl 包来实现这一点。
var dateString = 'April 20, 2020';
DateFormat format = new DateFormat("MMMM dd, yyyy");
var formattedDate = format.parse(dateString);
【讨论】: