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

Flutter中如何将字符串转换为DateTime类型?

输入图片描述

在Flutter里把字符串转成DateTime类型的方法

从图片里的字符串格式来看是标准ISO 8601格式(类似202X-XX-XXTXX:XX:XX.XXXZ这类),给你几种实用的处理方式:

1. 直接用内置方法(标准格式专用)

如果你的字符串是ISO 8601这种标准格式,直接调用DateTime.parse()就能完成转换,代码示例:

// 替换成你实际的目标字符串
String targetStr = "2023-10-05T14:48:00.000Z";
DateTime result = DateTime.parse(targetStr);
print(result); // 输出对应的DateTime对象

2. 自定义格式解析(非标准格式用)

要是字符串是自定义格式(比如2023/10/05 14:48这种),就得借助intl包来处理:

  • 先在项目的pubspec.yaml中添加依赖:
dependencies:
  intl: ^0.18.1
  • 然后用DateFormat指定对应格式解析:
import 'package:intl/intl.dart';

// 替换成你实际的自定义格式字符串
String customStr = "2023/10/05 14:48";
// 格式要和字符串的结构完全匹配
DateFormat formatter = DateFormat("yyyy/MM/dd HH:mm");
DateTime result = formatter.parse(customStr);
print(result);

常用格式符说明:

  • yyyy: 4位年份(如2023)
  • MM: 2位月份(如10)
  • dd: 2位日期(如05)
  • HH: 24小时制小时(如14)
  • mm: 分钟(如48)

3. 时区处理

如果字符串带时区标识(比如末尾的Z代表UTC时区),DateTime.parse()会自动识别,你也可以按需转换时区:

String utcStr = "2023-10-05T14:48:00.000Z";
DateTime utcDt = DateTime.parse(utcStr);
DateTime localDt = utcDt.toLocal(); // 转成手机本地时区时间
DateTime beijingDt = utcDt.add(Duration(hours: 8)); // 转成东八区时间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:10:14