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
相关产品推荐
相关产品推荐

