Flutter中如何利用系统库实现dateformat功能

在Flutter中如何利用系统自带的库来实现日期格式化功能?我看到intl包可以实现,但不想引入第三方依赖。请问dart:core或其他系统库中是否有类似DateFormat的类或方法?如果能给个简单的示例代码就更好了。

2 回复

在Flutter中,使用intl系统库实现日期格式化。首先添加依赖:intl: ^0.18.1,然后导入package:intl/intl.dart。示例代码:

String formattedDate = DateFormat('yyyy-MM-dd').format(DateTime.now());
print(formattedDate); // 输出:2023-10-05

支持自定义格式如'yyyy/MM/dd HH:mm:ss'

更多关于Flutter中如何利用系统库实现dateformat功能的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,可以使用 intl 包(官方国际化库)来实现日期格式化功能。这个包提供了强大的 DateFormat 类,支持多种预定义和自定义格式。

实现步骤:

  1. 添加依赖
    pubspec.yaml 文件中添加:

    dependencies:
      intl: ^0.18.1
    

    运行 flutter pub get 安装。

  2. 导入包

    import 'package:intl/intl.dart';
    
  3. 使用 DateFormat

    • 预定义格式(如:DateFormat.yMd() 对应 “MM/dd/yyyy”)
    • 自定义格式(如:DateFormat('yyyy-MM-dd HH:mm')

示例代码:

// 获取当前时间
DateTime now = DateTime.now();

// 使用预定义格式
String formattedDate1 = DateFormat.yMd().format(now); // 输出:7/10/2023
String formattedDate2 = DateFormat.yMMMEd().format(now); // 输出:Mon, Jul 10, 2023

// 使用自定义格式
String customDate = DateFormat('yyyy-MM-dd – HH:mm').format(now); // 输出:2023-07-10 – 14:30

// 解析字符串为 DateTime
DateTime parsedDate = DateFormat('yyyy/MM/dd').parse('2023/07/10');

常用模式符号:

  • yyyy:4位数年份
  • MM:2位数月份
  • dd:2位数日期
  • HH:24小时制小时
  • mm:分钟
  • ss:秒钟

注意事项:

  • 可通过 DateFormat.locale 指定地区(如:DateFormat.yMd('zh_CN') 输出中文格式)。
  • 支持复杂格式组合(如:EEE, MMM d, yyyy 对应 “Mon, Jul 10, 2023”)。

这种方法无需调用原生系统库,完全在Dart层实现,且支持国际化。

回到顶部