Flutter中如何去除时间保留日期,将pickerDate转为dd-MM-yyyy格式
解决方法
你只需要用DateFormat来格式化选中的pickerDate,而不是直接调用toString(),就能直接得到dd-MM-yyyy格式的日期字符串,不需要额外处理去除时分秒的步骤。
步骤说明:
- 确保已经导入
intl包(如果还没导入的话):
import 'package:intl/intl.dart';
- 修改
_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
相关产品推荐
相关产品推荐

