Eu tenho uma instância de DateTime
e gostaria de formatar isso para uma String. Como faço isso? Quero transformar a data em uma string, algo como "20/04/2013".
140
Você pode usar o intl
pacote ( instalador ) para formatar datas.
Para en_US
formatos, é bastante simples:
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
}
Existem muitas opções para formatação. Dos documentos:
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
Para não en_US
datas, você precisa carregar explicitamente no código do idioma. Veja os DateFormat
documentos para mais informações. O date_symbol_data_local.dart
contém todos os formatos para cada país / idioma, se você quiser uma visão mais aprofundada.
Isso também funcionará:
fonte
Você também pode especificar o formato da data como indicado anteriormente: https://pub.dartlang.org/documentation/intl/latest/intl/DateFormat-class.html
Produz:
March 4
fonte
Se alguém quiser converter uma data no formato de string para outro formato de string, use primeiro DateTime.parse ("2019-09-30") e passe-o para DateFormat ("date pattern"). Format () como
Referência: Dart - Como alterar o formato da sequência de datas simples que está no aaaa-MM-dd para dd-MM-aaaa
fonte
DateFormat
mas seu texto dizDateTime.format()
Isso fornece a data como em uma rede social: ["hoje", "ontem", "dayoftheweek", etc.]
fonte
Existe um pacote date_format
código
Preste atenção: os minutos são nn
link para o pacote
fonte
pubspec.yaml:
main.dart:
Resultado:
fonte
No caso de você querer combinar vários formatos de data em um, é assim que podemos usar
intl
.fonte
Para mais detalhes, consulte a documentação DateFormat
fonte
lidando com trimestres anuais, da string ao DateTime, não encontrei a solução adequada, então fiz isso:
fonte