Je veux formater la date comme ceci 2019-07-08T10: 37: 28Z mais je ne sais pas comment faire quelqu'un peut-il m'aider.
Voici le code pour le sélecteur de date
final format = new DateFormat.yMMMEd('en-US');
return DateTimeField(
format: format,
autocorrect: true,
autovalidate: false,
controller: _bspLicenseExpiryDate,
readOnly: true,
validator: (date) => date == null ? 'Please enter valid date' : null,
decoration: InputDecoration(
labelText: "Expiry Date",
hintText: "Expiry Date",
prefixIcon: Icon(
FontAwesomeIcons.calendar,
size: 24,
)),
onShowPicker: (context, currentValue) {
return showDatePicker(
context: context,
firstDate: DateTime.now(),
initialDate: currentValue ?? DateTime.now(),
lastDate: DateTime(2100),
);
},
);
3 Réponses :
Vous pouvez utiliser ceci:
var now = new DateTime.now();
var dateFormatted = DateFormat("yyyy-MM-ddTHH:mm:ss").format(now);
Vous devez ajouter le "Z" à la fin de la chaîne car c'est un caractère utilisé pour formater le fuseau horaire.
Vous pouvez le vérifier ici -> https://pub.dev/documentation /intl/latest/intl/DateFormat-class.html
Vous pouvez / devez citer les caractères non formatés - cela vous permet d'ajouter le Z. var dateFormatter = DateFormat ("aaaa-MM-jj'T'HH: mm: ss'Z '"). Format (DateHeure .now () );
@ Caffo17 "Z" indique que l'heure représentée est en UTC!
Vous pouvez vous référer à la classe DateFormat ici https: //api.flutter. dev / flutter / intl / DateFormat-class.html Il a un constructeur où vous pouvez mettre votre modèle.
final format = new DateFormat('yyyy-MM-ddTHH:mm:ssZ','en-US');
Il s'agit du type UTC de datetime au format ISO 8601 .
Méthode ci-dessous pour analyser ce format de date et renvoyer la valeur par défaut du jour si une exception > XXX
DateTimea une méthode.toIso8601String (), mais il imprime les fractions de seconde. Essayezprint (DateTime.now (). ToUtc (). ToIso8601String ());@RichardHeap vous avez sauvé ma journée. Merci!