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

Flutter中如何去除时间保留日期,将pickerDate转为dd-MM-yyyy格式

解决方法

你只需要用DateFormat来格式化选中的pickerDate,而不是直接调用toString(),就能直接得到dd-MM-yyyy格式的日期字符串,不需要额外处理去除时分秒的步骤。

步骤说明:

  1. 确保已经导入intl包(如果还没导入的话):
import 'package:intl/intl.dart';
  1. 修改_getDateFormUser方法里的赋值逻辑,替换掉pickerDate.toString()即可。

修改后的完整代码:

// 初始化时也统一用dd-MM-yyyy格式,保持前后一致
String _selectedDate = DateFormat("dd-MM-yyyy").format(DateTime.now());

_getDateFormUser() async {
    DateTime? pickerDate = (await showDatePicker(
        context: context,
        initialDate: DateTime.now(),
        firstDate: DateTime(2015),
        lastDate: DateTime(2121)));

    if (pickerDate != null) {
      setState(() {
        // 用DateFormat格式化DateTime对象,直接提取日期部分并转为目标格式
        _selectedDate = DateFormat("dd-MM-yyyy").format(pickerDate);
      });
    } else {
      // 用户取消选择后的逻辑
    }
  }

逻辑说明:

  • showDatePicker返回的pickerDate是完整的DateTime对象,默认时间部分为00:00:00.000
  • 直接调用toString()会输出Flutter默认的日期时间格式,而DateFormat("dd-MM-yyyy")可以精准提取日期部分并按指定格式输出,自动忽略时间部分,一步到位满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:15:03