如何使用 Dart 格式化日期? [英] How do I format a date with Dart?
问题描述
我有一个 DateTime
的实例,我想将其格式化为字符串.我怎么做?我想把日期变成一个字符串,比如2013-04-20".
I have an instance of DateTime
and I would like to format that to a String. How do I do that? I want to turn the date into a string, something like "2013-04-20".
推荐答案
You can use the intl
package (installer) to format dates.
对于 en_US
格式,这很简单:
For en_US
formats, it's quite simple:
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
}
有许多格式化选项.来自文档:
There are many options for formatting. From the docs:
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
文档了解更多信息.date_symbol_data_local.dart
包含每个国家/地区/语言的所有格式,如果您想更深入地了解的话.
For non-en_US
dates, you need to explicitly load in the locale. See the DateFormat
docs for more info. The date_symbol_data_local.dart
contains all of the formats for each country/language, if you would like a more in-depth look.
这篇关于如何使用 Dart 格式化日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!