Tengo una instancia de DateTime
y me gustaría formatearla en una cadena. ¿Cómo puedo hacer eso? Quiero convertir la fecha en una cadena, algo así como "2013-04-20".
141
Puede usar el intl
paquete ( instalador ) para formatear fechas.
Para en_US
formatos, es bastante 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
}
Hay muchas opciones para formatear. De los 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 las no en_US
fechas, debe cargar explícitamente en la configuración regional. Vea los DateFormat
documentos para más información. El date_symbol_data_local.dart
contiene todos los formatos para cada país / idioma, si se desea un análisis más en profundidad.
Esto también funcionará:
fuente
También puede especificar el formato de fecha como se indicó anteriormente: https://pub.dartlang.org/documentation/intl/latest/intl/DateFormat-class.html
Produce:
March 4
fuente
Si alguien quiere convertir una fecha en formato de cadena a otro formato de cadena, primero use DateTime.parse ("2019-09-30") y luego páselo a DateFormat ("patrón de fecha"). Format () como
Referencia: Dart: cómo cambiar el formato de la cadena de fecha simple que está en aaaa-MM-dd a dd-MM-aaaa
fuente
DateFormat
pero su texto diceDateTime.format()
Esto le da la fecha como en una red social: ["hoy", "ayer", "día de la semana", etc.]
fuente
Hay un paquete date_format
código
Presta atención: los minutos son nn
enlace al paquete
fuente
pubspec.yaml:
main.dart:
Resultado:
fuente
En el caso de que desee combinar varios formatos de fecha en uno, así es como podemos hacerlo usando
intl
.fuente
Para más detalles puede consultar la documentación de DateFormat
fuente
manejando trimestres anuales, desde la cadena hasta DateTime, no encontré la solución adecuada, así que hice esto:
fuente