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

如何在Dart中将'Jan 12, 2022'格式的日期字符串转为日期类型?

解决Dart中解析'Jan 12, 2022'格式日期的问题

DateTime.parse()仅支持解析符合ISO 8601标准的日期字符串(如2022-01-12T00:00:00),像Jan 12, 2022这种带英文月份缩写的自定义格式字符串,需要借助intl包的DateFormat类来处理。

具体实现步骤:

  1. 添加依赖
    在项目的pubspec.yaml中引入intl包:

    dependencies:
      flutter:
        sdk: flutter
      intl: ^0.18.1 # 可根据最新版本调整
    

    执行dart pub get或flutter pub get完成依赖安装。

  2. 编写解析代码
    导入intl包后,指定对应格式解析目标日期字符串:

    import 'package:intl/intl.dart';
    
    void main() {
      String targetDate = 'Jan 12, 2022';
      // MMM匹配英文月份缩写,dd匹配两位日期,yyyy匹配四位年份
      DateFormat dateFormat = DateFormat('MMM dd, yyyy', 'en_US');
      try {
        DateTime parsedDate = dateFormat.parse(targetDate);
        print(parsedDate); // 输出:2022-01-12 00:00:00.000
      } catch (e) {
        print('日期解析失败:$e');
      }
    }
    

补充说明:

  • 显式指定en_US locale是为了避免系统默认语言不同导致的解析异常,确保英文月份缩写能被正确识别;如果是其他语言的月份格式,只需替换对应的locale参数(如zh_CN对应中文月份)。
  • 若需将解析后的DateTime转回指定格式字符串,可使用dateFormat.format(parsedDate)方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:55:30