Cómo formatear fecha y hora en Flutter

Resuelto Nitneuq asked hace 54 años • 16 respuestas

Estoy intentando mostrar el actual DateTimeen un Textwidget después de tocar un botón. Lo siguiente funciona, pero me gustaría cambiar el formato.

Enfoque actual

DateTime now = DateTime.now();
currentTime = new DateTime(now.year, now.month, now.day, now.hour, now.minute);
 Text('$currentTime'), 

Resultado

YYYY-MM-JJ HH-MM:00.000

Pregunta

¿ Cómo puedo quitar la :00.000pieza?

Nitneuq avatar Jan 01 '70 08:01 Nitneuq
Aceptado

Puede utilizar DateFormatdesde el paquete intl .

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
boformer avatar Jul 29 '2018 11:07 boformer

Agregue intl el paquete a su pubspec.yamlarchivo.

import 'package:intl/intl.dart';

DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm:ss");

Convirtiendo el objeto DateTime a String

String string = dateFormat.format(DateTime.now());

Conversión de cadena en objeto DateTime

DateTime dateTime = dateFormat.parse("2019-07-19 8:40:23");
CopsOnRoad avatar Jul 19 '2019 06:07 CopsOnRoad

Con este enfoque, no es necesario importar ninguna biblioteca.

DateTime now = DateTime.now();

String convertedDateTime = "${now.year.toString()}-${now.month.toString().padLeft(2,'0')}-${now.day.toString().padLeft(2,'0')} ${now.hour.toString().padLeft(2,'0')}-${now.minute.toString().padLeft(2,'0')}";

Producción

2020-12-05 14:57

Quick learner avatar Mar 25 '2020 11:03 Quick learner