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

Flutter解析'04-09-2021 - 15:00'时报Invalid date format错误如何解决

错误原因

  • DateTime.parse()方法仅支持解析符合ISO 8601规范的日期字符串,你使用的dd-MM-yyyy - HH:mm属于自定义格式,无法被该方法识别,因此抛出格式无效错误。
  • 原有代码逻辑顺序错误:需要先通过自定义格式的DateFormat实例将字符串解析为DateTime对象,再执行时区转换,最后格式化输出,而非先调用DateTime.parse处理自定义格式字符串。

修复后代码

if(dt != 'Not Available'){
  // 先按自定义格式解析原始字符串为DateTime对象
  DateTime parsedDt = DateFormat('dd-MM-yyyy - HH:mm').parse(dt);
  // 转换为本地时区后按目标格式输出
  return DateFormat('dd-MM-yyyy - HH:mm').format(parsedDt.toLocal());
}else{
  return dt;
}

可选优化

如果输入和输出的日期格式完全一致,可以复用DateFormat实例减少重复创建:

final customDtFormat = DateFormat('dd-MM-yyyy - HH:mm');
if(dt != 'Not Available'){
  return customDtFormat.format(customDtFormat.parse(dt).toLocal());
}else{
  return dt;
}

注:需确保项目已引入intl依赖,且DateFormat的导入路径为package:intl/intl.dart。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:45:03