Datetime 验证日期时间(颤振/飞镖)

Datetime 验证日期时间(颤振/飞镖),datetime,flutter,dart,Datetime,Flutter,Dart,有没有人对datetime.tryparse进行过有意义的使用?我正在尝试接受日期格式,例如 MM/dd/yyyy MM-dd-yyyy MM.dd.yyyy 对于所有这些格式,似乎DateTime.tryParse总是返回null。是否有库或更方便的方法来接受不同格式的日期时间。DateTime。[try]parse只解析一种非常独特的格式,即: ISO 8601的子集,包括RFC 3339接受的子集 要解析类似于2019年9月6日的格式,请使用package:intl中的DateForma

有没有人对datetime.tryparse进行过有意义的使用?我正在尝试接受日期格式,例如

MM/dd/yyyy
MM-dd-yyyy
MM.dd.yyyy

对于所有这些格式,似乎
DateTime.tryParse
总是返回null。是否有库或更方便的方法来接受不同格式的日期时间。

DateTime。[try]parse
只解析一种非常独特的格式,即:

ISO 8601的子集,包括RFC 3339接受的子集

要解析类似于2019年9月6日的格式,请使用
package:intl
中的
DateFormat

DateFormat.yMd().parse('06/09/2019'); // defaults to en_US, i.e. MM/dd/yyyy
此代码:

import 'package:intl/intl.dart';

main() {
  print(DateFormat.yMd().parse('06/09/2019'));
}
印刷品

2019-06-09 00:00:00.000


正如预期的那样

如果日期与格式不匹配会发生什么?有一个很好的tryParse方法吗?它抛出
FormatException
,您可以捕获并处理它。因此,如果我想在一个函数中解析三种不同的格式,请将其称为validate,如果没有三个单独的try-catch块,我就无法真正实现它。
parse
应该一次性处理所有这些格式(请注意,我没有在任何地方指定分隔符)。您也可以尝试使用更为宽松的
parseLoose
。嗯……我在上面添加了这段代码,我得到了一个格式异常:/