1
votes

Comment formater la date comme celle-ci 2019-07-08T10: 37: 28Z en flutter

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),
        );
      },
    );


2 commentaires

DateTime a une méthode .toIso8601String () , mais il imprime les fractions de seconde. Essayez print (DateTime.now (). ToUtc (). ToIso8601String ());


@RichardHeap vous avez sauvé ma journée. Merci!


3 Réponses :


3
votes

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


2 commentaires

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!



0
votes

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');


0 commentaires

0
votes

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


0 commentaires