如何处理Dart / Flutter中的DateTime溢出?

在Flutter项目中,我有一个带有日期选择器的输入表单。用户选择日期后,可以通过键入来更改选择的日期。我想验证表单输入,并确保日期输入是正确的日期。

以下是输入表单的屏幕截图:

如何处理Dart / Flutter中的DateTime溢出?

不幸的是,Dart语言DateTime对象允许溢出。因此,输入2019-13-1(DateTime字段的格式类似于yyyy-MM-dd),然后验证该输入将通过验证,并返回日期2020-1-1。由于Dart Date溢出行为,第13个月变为明年的第1个月。

我知道已经有一个Github问题:https://github.com/dart-lang/sdk/issues/11189

有没有人可以解决此问题?感谢您的提前帮助!

DateTimeField的代码如下所示:

                  ListTile(
                    leading: Icon(Icons.calendar_today,size: 21),title: DateTimeField(
                      decoration: InputDecoration(
                        hintText: 'Date'
                      ),autovalidate: false,format: DateFormat('yyyy-MM-dd'),onShowPicker: (context,currentvalue) {
                        return showDatePicker(
                          firstDate: DateTime(2019),initialDate: DateTime.now(),lastDate: DateTime(DateTime.now().year + 1),context: context
                        );
                      },validator: (value) {
                        if ((value.toString().isEmpty) || (DateTime.tryParse(value.toString()) == null)) {
                          return 'Please enter a valid date';
                        } 
                        return null;
                      },onChanged: (value) {
                        setState(() => expense.date = value);
                      },)
                  ),
xk312339548 回答:如何处理Dart / Flutter中的DateTime溢出?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3125798.html

大家都在问