J'ai une instance de DateTime
et je voudrais la formater en String. Comment je fais ça? Je veux transformer la date en une chaîne, quelque chose comme "2013-04-20".
144
Vous pouvez utiliser le intl
package (programme d' installation ) pour formater les dates.
Pour les en_US
formats, c'est assez simple:
import 'package:intl/intl.dart';
main() {
final DateTime now = DateTime.now();
final DateFormat formatter = DateFormat('yyyy-MM-dd');
final String formatted = formatter.format(now);
print(formatted); // something like 2013-04-20
}
Il existe de nombreuses options de formatage. À partir de la documentation:
ICU Name Skeleton
-------- --------
DAY d
ABBR_WEEKDAY E
WEEKDAY EEEE
ABBR_STANDALONE_MONTH LLL
STANDALONE_MONTH LLLL
NUM_MONTH M
NUM_MONTH_DAY Md
NUM_MONTH_WEEKDAY_DAY MEd
ABBR_MONTH MMM
ABBR_MONTH_DAY MMMd
ABBR_MONTH_WEEKDAY_DAY MMMEd
MONTH MMMM
MONTH_DAY MMMMd
MONTH_WEEKDAY_DAY MMMMEEEEd
ABBR_QUARTER QQQ
QUARTER QQQQ
YEAR y
YEAR_NUM_MONTH yM
YEAR_NUM_MONTH_DAY yMd
YEAR_NUM_MONTH_WEEKDAY_DAY yMEd
YEAR_ABBR_MONTH yMMM
YEAR_ABBR_MONTH_DAY yMMMd
YEAR_ABBR_MONTH_WEEKDAY_DAY yMMMEd
YEAR_MONTH yMMMM
YEAR_MONTH_DAY yMMMMd
YEAR_MONTH_WEEKDAY_DAY yMMMMEEEEd
YEAR_ABBR_QUARTER yQQQ
YEAR_QUARTER yQQQQ
HOUR24 H
HOUR24_MINUTE Hm
HOUR24_MINUTE_SECOND Hms
HOUR j
HOUR_MINUTE jm
HOUR_MINUTE_SECOND jms
HOUR_MINUTE_GENERIC_TZ jmv
HOUR_MINUTE_TZ jmz
HOUR_GENERIC_TZ jv
HOUR_TZ jz
MINUTE m
MINUTE_SECOND ms
SECOND s
Pour les non- en_US
dates, vous devez charger explicitement dans les paramètres régionaux. Consultez la DateFormat
documentation pour plus d'informations. Le date_symbol_data_local.dart
contient tous les formats pour chaque pays / langue, si vous souhaitez un examen plus approfondi.
Cela fonctionnera aussi:
la source
Vous pouvez également spécifier le format de date comme indiqué précédemment: https://pub.dartlang.org/documentation/intl/latest/intl/DateFormat-class.html
Produit:
March 4
la source
Si quelqu'un veut convertir une date au format chaîne en un autre format chaîne, utilisez d'abord DateTime.parse ("2019-09-30") puis transmettez-la à DateFormat ("modèle de date"). Format () comme
Référence: Dart - Comment changer le format de la chaîne de date simple qui est en aaaa-MM-jj en jj-MM-aaaa
la source
DateFormat
mais votre texte ditDateTime.format()
Cela vous donne la date comme dans un réseau social: ["aujourd'hui", "hier", "jour de la semaine", etc.]
la source
Il existe un package date_format
code
Faites attention: les minutes sont nn
lien vers le package
la source
pubspec.yaml:
main.dart:
Résultat:
la source
Dans le cas où vous souhaitez combiner plusieurs formats de date en un seul, voici comment nous pouvons le faire
intl
.la source
Pour plus de détails, vous pouvez consulter la documentation DateFormat
la source
gérant les trimestres annuels, de la chaîne au DateTime, je n'ai pas trouvé de solution appropriée, alors j'ai fait ceci:
la source