我在3个文本字段中输入日、月和年,但没有一个DateTime属性或函数提供验证。
我已经使用DateTime.parse(str)来获取日期,但是如果月份字段中输入的天数超过12天,它会将剩余月份添加到年份中。
bool isDate(String str) {
try {
DateTime.parse(str);
return true;
} catch (e) {
return false;
}
}
- 我想如果有人输入'20053050'的字符串是假不真。但这个函数总是返回真!!!*
5条答案
按热度按时间68de4m5k1#
现在你可以尝试一个简单的方法,就是tryParse方法,它只返回无效日期格式的null。
kmb7vmvb2#
使用
parseStrict
而不仅仅是parse
:kmpatx3s3#
DateTime构造函数允许无效范围似乎是个问题:DateTime.parse should throw an error on invalid date...
解决方法如下:How to check if a given Date exists in DART?
您可以像这样使用它:
hgtggwj04#
您可以尝试将日期收集为字符串(例如
String _enteredDate
),并将其转换为您想要的日期格式,使用DateFormat
和您的格式设置首选项,并使用DateTime.parse
解析字符串。例如:如果用户输入无效的日期格式,应该会有一个错误,您可以捕捉和警报。
hm2xizp95#
检查日期。
“2022年2月20日”有效日期
“2022年2月30日”日期无效
Yann39 Answered from.