如果您将不存在的/非真实的日期如:'20181364' (2018/13/64) 传递到 DateTime(构造函数或解析方法),则不会引发异常。而是返回计算出的 DateTime。
示例:'20181364' --> 2019-03-05 00:00:00.000
如何检查给定日期是否真的存在/有效?
我尝试使用 DartPad 解决这个问题(没有成功),所以这里不需要 Flutter doctor 输出。
void main() {
var inputs = ['20180101', // -> 2018-01-01 00:00:00.000
'20181231', // -> 2018-12-31 00:00:00.000
'20180230', // -> 2018-03-02 00:00:00.000
'20181301', // -> 2019-01-01 00:00:00.000
'20181364'];// -> 2019-03-05 00:00:00.000
inputs.forEach((input) => print(convertToDate(input)));
}
String convertToDate(String input){
return DateTime.parse(input).toString();
}
Run Code Online (Sandbox Code Playgroud)
如果存在某种方法来检查给定日期是否真的存在/有效,那就太好了,例如:
你会如何解决这个问题?