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

Flutter中GMT日期转本地时区日期报错问题排查

问题原因及解决办法

核心原因

Dart自带的DateTime.parse()方法仅支持有限的几种标准日期格式(比如ISO 8601格式),你从API拿到的「Thu, 13 Oct 2022 00:09:35 GMT」属于RFC 1123格式,不在它的默认支持范围内,因此会抛出格式异常。

解决办法

借助intl包处理这类非标准格式的日期解析,步骤如下:

  1. 在项目的pubspec.yaml中添加依赖:
dependencies:
  intl: ^0.18.1 # 可替换为最新版本
  1. 在代码中导入并使用:
import 'package:intl/intl.dart';

// 匹配目标日期格式的模板
final dateFormat = DateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", 'en_US');
// 解析GMT日期
DateTime dt = dateFormat.parse("Thu, 13 Oct 2022 00:09:35 GMT");
// 转换为本地时间
final _localTime = dt.toLocal();

print("converted gmt date >> " + dt.toString());
print("local modified date >> "+_localTime.toString());

注意:指定en_US本地化是为了确保英文星期、月份缩写能被正确识别,避免因设备系统语言差异导致解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:55:24