У меня есть экземпляр, DateTime
и я хотел бы отформатировать его в строку. Как я могу это сделать? Я хочу превратить дату в строку, например, «2013-04-20».
144
Вы можете использовать intl
пакет ( установщик ) для форматирования дат.
Для 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
документации . date_symbol_data_local.dart
Содержит все форматы для каждой страны / языка, если вы хотели бы посмотреть более глубокий.
Это тоже сработает:
источник
Вы также можете указать формат даты, как указано ранее: https://pub.dartlang.org/documentation/intl/latest/intl/DateFormat-class.html
Производит:
March 4
источник
Если кто-то хочет преобразовать дату в строковом формате в какой-либо другой строковый формат, сначала используйте DateTime.parse ("2019-09-30"), а затем передайте его в DateFormat ("шаблон даты"). Format (), например
Ссылка: Dart - Как изменить формат простой строки даты в формате yyyy-MM-dd на dd-MM-yyyy
источник
DateFormat
но ваш текст говоритDateTime.format()
Это даст вам дату, как в социальной сети: [«сегодня», «вчера», «день недели» и т. Д.]
источник
Есть пакет date_format
код
Обратите внимание: минут nn
ссылка на пакет
источник
pubspec.yaml:
main.dart:
Результат:
источник
Если вы хотите объединить несколько форматов даты в один, мы можем сделать это с помощью
intl
.источник
Для получения дополнительной информации см. Документацию DateFormat.
источник
обработки годовых кварталов, от строки до DateTime, я не нашел подходящего решения, поэтому сделал следующее:
источник