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

CupertinoDatePicker切换年月时重置时分问题求助

解决CupertinoDatePicker切换日期时重置时分秒的问题

问题出在CupertinoDatePickerMode.date模式的默认行为上——当你选择新的年/月/日时,组件返回的newTime会自动将时分秒重置为00:00,因为该模式仅处理日期维度的选择,不会保留原时间信息。

要解决这个问题,只需要在更新日期时,保留原dateTimeStart和dateTimeEnd的时分秒部分,仅替换年、月、日:

修改后的关键代码片段

// 处理Start日期选择的回调
onDateTimeChanged: (DateTime newTime) {
  setState(() {
    dateTimeStart = DateTime(
      newTime.year,
      newTime.month,
      newTime.day,
      dateTimeStart.hour, // 保留原小时
      dateTimeStart.minute, // 保留原分钟
      dateTimeStart.second, // 保留原秒数
    );
  });
},

// 处理End日期选择的回调
onDateTimeChanged: (DateTime newTime) {
  setState(() {
    dateTimeEnd = DateTime(
      newTime.year,
      newTime.month,
      newTime.day,
      dateTimeEnd.hour,
      dateTimeEnd.minute,
      dateTimeEnd.second,
    );
  });
},

这样修改后,无论你怎么切换年、月、日,之前设置的小时和分钟都会被保留下来,不会被重置为00:00。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:25:36