You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter DateTimeField日期选择器月份显示为00问题求助

问题解决:出生日期选择后月份显示为00的问题

问题出在日期格式字符串的写法上:你用了DateFormat("dd-mm-yyyy"),其中小写的mm代表的是分钟,而非月份,所以月份位置始终显示00(日期选择器返回的DateTime对象分钟值为0)。

只需要把格式字符串里的mm改成大写的MM(大写MM才代表月份)即可解决问题,修正后的代码如下:

final birthDateField = DateTimeField(
      controller: dateController,
      format: DateFormat("dd-MM-yyyy"), // 这里把mm改成MM
      onShowPicker: (context, currentValue) async {
        final date = await showDatePicker(
            context: context,
            initialDate: currentValue ?? DateTime.now(),
            firstDate: DateTime(1920),
            lastDate: DateTime(2030));
        return date;
      },
      decoration: InputDecoration(
        border: OutlineInputBorder(
          borderRadius: BorderRadius.circular(10),
        ),
        labelText: 'تاريخ الميلاد',
        prefixIcon: Icon(Icons.calendar_month),
      ),
    );

这样修改后,选择的月份就能正确显示了,比如选择15-October-1996会显示为15-10-1996。

内容的提问来源于stack exchange,提问作者editix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:39:20