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

Flutter:解决ISO日期时间解析错误并拆分为日期与带AM/PM时间

解决ISO日期字符串解析与格式转换问题

针对你遇到的2023-01-25T00:37:00.000Z这类ISO 8601格式的日期字符串解析问题,按以下步骤处理即可拆分出日期和带AM/PM标识的时间:

1. 正确解析ISO格式字符串

Dart的DateTime类原生支持解析标准ISO 8601格式的字符串,无需自定义格式,直接用DateTime.parse()即可:

String isoDateStr = "2023-01-25T00:37:00.000Z";
DateTime dateTime = DateTime.parse(isoDateStr);

// 若需要转换为本地时区时间,添加以下代码
// dateTime = dateTime.toLocal();

2. 格式化为目标日期和时间

借助intl包的DateFormat工具,分别格式化日期和带AM/PM的时间:
首先确保项目已添加intl依赖(在pubspec.yaml中配置),然后编写代码:

import 'package:intl/intl.dart';

// 格式化日期为dd-MM-yyyy格式
String formattedDate = DateFormat("dd-MM-yyyy").format(dateTime);

// 格式化时间为12小时制并带AM/PM标识
String formattedTime = DateFormat("hh:mm a").format(dateTime);

错误原因说明

  • 你之前用DateFormat("dd-MM-y").parse()解析,是因为指定的格式与ISO字符串结构完全不匹配,导致解析出错误结果;
  • 直接用dateFormat.parse()未指定对应ISO格式的模板,自然会抛出格式异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:40:29