Te recomendamos que revises esta resolución en un ambiente controlado antes de enviarlo a producción, saludos.
Solución:
En tu ejemplo anterior, expiry
es un String
, no un objeto DateTime. Tienes algunas opciones aquí, dependiendo de lo que quieras lograr.
La solución más fácil sería utilizar la función integrada de String. compareTo
método, que permite ordenar cadenas. Esas marcas de tiempo ya están en un formato ordenable, por lo que esto funcionaría:
products.sort((a,b)
return a.compareTo(b);
);
O más conciso:
products.sort((a,b) => a.compareTo(b));
Esto es bastante básico. Al igual que pskink mencionado en el comentario, basándose en esto, podría convertir las Cadenas en objetos DateTime reales.
DateTime expiryAsDateTime = DateTime.parse(expiry);
DateTime
también tiene incorporado compareTo
método, por lo que el fragmento de código anterior funcionaría tanto con DateTimes como con Strings.
Si desea invertir el orden, simplemente intercambie a
y b
.
Lo arreglé cambiando changing a.expiry into a['expiry']
y b.expiry into b['expiry']
products.sort((a,b)
var adate = a['expiry'] //before -> var adate = a.expiry;
var bdate = b['expiry'] //before -> var bdate = b.expiry;
return adate.compareTo(bdate); //to get the order other way just switch `adate & bdate`
);
convertir a fecha y hora
import 'package:intl/intl.dart';
void main()
List products = [
"2019-11-25 00:00:00.000",
"2019-11-22 00:00:00.000",
"2019-11-22 00:00:00.000",
"2019-11-24 00:00:00.000",
"2019-11-23 00:00:00.000"
];
List newProducts = [];
DateFormat format = DateFormat("yyyy-MM-dd");
for (int i = 0; i < 5; i++)
newProducts.add(format.parse(products[i]));
newProducts.sort((a,b) => a.compareTo(b));
for (int i = 0; i < 5; i++)
print(newProducts[i]);
sin convertir a DateTime
import 'package:intl/intl.dart';
void main()
List products = [
"2019-11-25 00:00:00.000",
"2019-11-22 00:00:00.000",
"2019-11-22 00:00:00.000",
"2019-11-24 00:00:00.000",
"2019-11-23 00:00:00.000"
];
products.sort((a,b) => a.compareTo(b));
for (int i = 0; i < 5; i++)
print(products[i]);
Comentarios y calificaciones del artículo
Si te gusta la programación, puedes dejar una división acerca de qué te ha gustado de esta sección.