Hola, hemos encontrado la respuesta a lo que andabas buscando, deslízate y la hallarás un poco más abajo.
Solución:
DateTime.parse("string date here")
aceptar algunos formateados string solamente. Consulte a continuación los ejemplos de cadenas aceptadas.
"2012-02-27 13:27:00"
"2012-02-27 13:27:00.123456789z"
"2012-02-27 13:27:00,123456789z"
"20120227 13:27:00"
"20120227T132700"
"20120227"
"+20120227"
"2012-02-27T14Z"
"2012-02-27T14+00:00"
"-123450101 00:00:00 Z"
: en el año -12345."2002-02-27T14:00:00-0500"
: Igual que"2002-02-27T19:00:00Z"
=> Cadena a DateTime
DateTime tempDate = new DateFormat("yyyy-MM-dd hh:mm:ss").parse(savedDateString);
=> Fecha y hora a la cadena
String date = DateFormat("yyyy-MM-dd hh:mm:ss").format(DateTime.now());
Enlaces de referencia:
- Usar
intl
porDateFormat
del paquete flutter (https://pub.dev/packages/intl)- DateTime.parse() => https://api.dart.dev/stable/2.7.2/dart-core/DateTime/parse.html
intl DateFormat
no puede hacer frente a su entrada string ya que no tiene separadores. El conjunto string se consume como el año. Sin embargo DateTime.parse
hace frente a esto (casi). Le pasa a esperar precisamente el formato que tiene (otra vez, casi).
Uno de los estilos aceptables para parse
es 20120227T132700
que sólo se diferencia por el T
separador de fecha/hora.
Prueba esto:
String date = '20180626170555';
String dateWithT = date.substring(0, 8) + 'T' + date.substring(8);
DateTime dateTime = DateTime.parse(dateWithT);
Puede usar DateFormat para analizar un DateTime de string a un objeto
// With en_US locale by default
var newDateTimeObj = new DateFormat().add_yMd().add_Hms().parse("7/10/1996 10:07:23")
// with a defined format
var newDateTimeObj2 = new DateFormat("dd/MM/yyyy HH:mm:ss").parse("10/02/2000 15:13:09")
Consulte el documento aquí.
Valoraciones y reseñas
Al final de la web puedes encontrar las referencias de otros programadores, tú todavía puedes mostrar el tuyo si te gusta.