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
DateTime
a une méthode.toIso8601String ()
, mais il imprime les fractions de seconde. Essayezprint (DateTime.now (). ToUtc (). ToIso8601String ());
@RichardHeap vous avez sauvé ma journée. Merci!