我有一个DateTime的实例,我想把它格式化成一个字符串.我该怎么做?我想把日期变成一个字符串,比如"2013-04-20".

推荐答案

您可以使用intl个包(installer)来格式化日期.

对于en_US种格式,它非常简单:

import 'package:intl/intl.dart';

main() {
  final DateTime now = DateTime.now();
  final DateFormat formatter = DateFormat('yyyy-MM-dd');
  final String formatted = formatter.format(now);
  print(formatted); // something like 2013-04-20
}

有许多设置格式的选项.从文档中:

ICU Name                   Skeleton
--------                   --------
DAY                          d
ABBR_WEEKDAY                 E
WEEKDAY                      EEEE
ABBR_STANDALONE_MONTH        LLL
STANDALONE_MONTH             LLLL
NUM_MONTH                    M
NUM_MONTH_DAY                Md
NUM_MONTH_WEEKDAY_DAY        MEd
ABBR_MONTH                   MMM
ABBR_MONTH_DAY               MMMd
ABBR_MONTH_WEEKDAY_DAY       MMMEd
MONTH                        MMMM
MONTH_DAY                    MMMMd
MONTH_WEEKDAY_DAY            MMMMEEEEd
ABBR_QUARTER                 QQQ
QUARTER                      QQQQ
YEAR                         y
YEAR_NUM_MONTH               yM
YEAR_NUM_MONTH_DAY           yMd
YEAR_NUM_MONTH_WEEKDAY_DAY   yMEd
YEAR_ABBR_MONTH              yMMM
YEAR_ABBR_MONTH_DAY          yMMMd
YEAR_ABBR_MONTH_WEEKDAY_DAY  yMMMEd
YEAR_MONTH                   yMMMM
YEAR_MONTH_DAY               yMMMMd
YEAR_MONTH_WEEKDAY_DAY       yMMMMEEEEd
YEAR_ABBR_QUARTER            yQQQ
YEAR_QUARTER                 yQQQQ
HOUR24                       H
HOUR24_MINUTE                Hm
HOUR24_MINUTE_SECOND         Hms
HOUR                         j
HOUR_MINUTE                  jm
HOUR_MINUTE_SECOND           jms
HOUR_MINUTE_GENERIC_TZ       jmv
HOUR_MINUTE_TZ               jmz
HOUR_GENERIC_TZ              jv
HOUR_TZ                      jz
MINUTE                       m
MINUTE_SECOND                ms
SECOND                       s

对于非en_US日期,您需要显式加载区域设置.有关更多信息,请参阅DateFormat docs.date_symbol_data_local.dart包含每个国家/语言的所有格式,如果您想深入了解的话.

Dart相关问答推荐

根据 Id 比较两个不同的 List

如何在 Flutter Web 中动态更改 App Title?

Swipe返回手势

Flutter - 自定义按钮点击区域

了解Dart private class

如何在仍然引用来自 pub.dartlang.org 的包的同时运行私有 pub 服务器?

如何修复 Flutter 中的Checking Dart SDK version... << was unexpected at this time错误?

Flutter-创建一个倒计时(countdown)小部件

谷歌dart Regions?

Flutter中图像纵横比的变化

iOS 上 Flutter 的代码设计错误

如何在 showModalBottomSheet 中设置状态

如何判断switch/case中对象的类型?

如何将条目添加到列表中的特定索引?

用默认值初始化成员的最优雅的方法

如何从 Dart 中的 forEach 循环返回?

Dart 中 == 和 === 有什么区别?

我应该如何在 Dart 中测试 Future?

如何在 Dart 中获取文件名?

dart中是否可以有一个私有构造函数?