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

Flutter 如何获取DatePicker选中的日期时间并在页面渲染展示

实现方法

你已经将选中值存入状态变量且选择后调用了setState触发重绘,只需在页面需要展示的位置新增展示组件即可,以下是具体实现:

可选前置步骤(方便格式化日期)

如果需要灵活调整日期展示格式,推荐引入intl格式化包:

  1. 在pubspec.yaml的dependencies下添加依赖:
dependencies:
  flutter:
    sdk: flutter
  intl: ^0.18.1 # 可替换为最新稳定版
  1. 在用到的dart文件头部导入包:
import 'package:intl/intl.dart';

新增展示组件

将以下代码插入到你需要展示选中值的布局位置即可:

Column(
  crossAxisAlignment: CrossAxisAlignment.start,
  children: [
    // 展示选中时间,padLeft用于给个位数时间补0,格式更统一
    Text(
      "选中时间:${_time.hour.toString().padLeft(2, '0')}:${_time.minute.toString().padLeft(2, '0')}",
      style: TextStyle(fontSize: 16),
    ),
    SizedBox(height: 8),
    // 展示选中日期,处理未选择日期的空值场景
    Text(
      "选中日期:${_dateTime == null ? "未选择" : DateFormat('yyyy年MM月dd日').format(_dateTime!)}",
      style: TextStyle(fontSize: 16),
    ),
  ],
)

无需引入intl包的替代写法

如果不想额外引入依赖,也可以手动拼接日期字符串,把上面日期展示的Text内容替换为以下即可:

Text(
  "选中日期:${_dateTime == null ? "未选择" : "${_dateTime!.year}年${_dateTime!.month.toString().padLeft(2,'0')}月${_dateTime!.day.toString().padLeft(2,'0')}日"}",
  style: TextStyle(fontSize: 16),
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:24:03