我正在使用showDatePicker()在我的flutter应用程序中选择一个日期。我将日期格式更改为我的要求,即dd / MM / yyyy。一切正常,但如果我从日期选择器中单击编辑笔图标,然后输入dd / MM / yyyy(15/10/2020)format,则显示无效格式。
请帮助我任何人。这是我的代码。
TextFormField(
controller: startDateAnnuityCtl,
validator: (String value) {
if (value.isEmpty) {
return 'Enter Start date of annuity *';
} else {
_formObject.amrfNoAnnuityStartString = value;
}
return null;
},
onSaved: (String value) {
_formObject.amrfNoAnnuityStartString = value;
},
decoration: InputDecoration(
isDense: true, // Added this
contentPadding: EdgeInsets.all(12),
filled: true,
fillColor: Color(0xff5a9fd6).withOpacity(0.15),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xff5a9fd6).withOpacity(1.0),
),
borderRadius: BorderRadius.circular(2.0),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.transparent,
),
borderRadius: BorderRadius.circular(1.0),
)),
onTap: () async {
formKey1.currentState.save();
DateTime date = DateTime(1900);
FocusScope.of(context).requestFocus(new FocusNode());
date = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(1900),
lastDate: DateTime(2100));
if (date != null) {
setState(() {
var dtnew =
new DateFormat('dd/MM/yyyy').format(date);
_formObject.amrfNoAnnuityStartString = dtnew;
startDateAnnuityCtl.text = _formObject.amrfNoAnnuityStartString;
});
}
},
),
答案 0 :(得分:0)
在日期选择器中输入日期时,它将采用MM / dd / yyyy格式输入。因此,您会收到错误消息,说明格式无效。目前,我找不到在日期选择器中更改文本字段格式的解决方案。
答案 1 :(得分:0)
不确定这是否是最好的方法,但是我创建了自己的DefaultMaterialLocalizations并更改了parseCompactDate方法的行为。