flutter如何格式化datetime

在Flutter中如何格式化DateTime对象?我尝试使用DateFormat但不知道具体怎么操作,比如想把2023-05-15 14:30:00格式化成"2023年5月15日"这样的中文格式。请问应该导入哪个库?有没有更简单的方法?需要注意时区问题吗?

2 回复

在Flutter中,使用intl包中的DateFormat类格式化DateTime。例如:

import 'package:intl/intl.dart';

String formatted = DateFormat('yyyy-MM-dd').format(DateTime.now());

输出:2023-10-05

更多关于flutter如何格式化datetime的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中格式化DateTime可以使用intl包,这是最常用的方法。

安装依赖

pubspec.yaml中添加:

dependencies:
  intl: ^0.18.1

然后运行 flutter pub get

基本使用方法

import 'package:intl/intl.dart';

void main() {
  DateTime now = DateTime.now();
  
  // 常用格式化示例
  print(DateFormat('yyyy-MM-dd').format(now));        // 2024-01-15
  print(DateFormat('yyyy-MM-dd HH:mm:ss').format(now)); // 2024-01-15 14:30:25
  print(DateFormat('MM/dd/yyyy').format(now));        // 01/15/2024
  print(DateFormat('EEE, MMM d, yyyy').format(now));  // Mon, Jan 15, 2024
  print(DateFormat('HH:mm').format(now));             // 14:30
}

常用格式符号

  • yyyy:4位数年份
  • MM:2位数月份
  • dd:2位数日期
  • HH:24小时制小时
  • mm:分钟
  • ss:秒钟
  • EEE:星期几缩写
  • MMMM:月份全名

预定义格式

print(DateFormat.yMd().format(now));     // 1/15/2024
print(DateFormat.yMMMd().format(now));   // Jan 15, 2024
print(DateFormat.yMMMMd().format(now));  // January 15, 2024
print(DateFormat.Hm().format(now));      // 14:30

本地化支持

// 设置本地化
DateFormat('yyyy-MM-dd', 'zh_CN').format(now); // 中文格式

这是最推荐的DateTime格式化方法,简单且功能强大。

回到顶部