Tout ce que je peux voir dans la documentation est Datetime.now()
mais ça renvoie le Timespan, j'ai juste besoin de la date.
Créez une nouvelle date à partir de now
avec uniquement les pièces dont vous avez besoin:
DateTime now = new DateTime.now();
DateTime date = new DateTime(now.year, now.month, now.day);
Il n'y a pas de classe dans les bibliothèques de base pour modéliser une date sans heure. Vous devez utiliser new DateTime.now()
.
Sachez que la date dépend du fuseau horaire: 2016-01-20 02:00:00
à Paris est le même instant que 2016-01-19 17:00:00
à Seattle mais le jour n'est pas le même.
Si vous souhaitez uniquement la date sans horodatage. Vous pouvez prendre l'aide du package intl.
main() {
var now = new DateTime.now();
var formatter = new DateFormat('yyyy-MM-dd');
String formattedDate = formatter.format(now);
print(formattedDate); // 2016-01-25
}
Cela nécessite le package intl
vous pouvez obtenir la date actuelle
final now = new DateTime.now();
String formatter = DateFormat('yMd').format(now); =>returns28/03/2020
Vous vous demandez comment vous souvenez-vous du format de la date (DateFormat('yMd')
)?
A. => Alors Flutter Docs est la réponse
La classe DateFormat permet à l'utilisateur de choisir parmi un ensemble de formats de date et d'heure standard ainsi que de spécifier un modèle personnalisé sous certains paramètres régionaux. Tiré directement des documents
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
/// Examples Using the US Locale:
/// Pattern Result
/// ---------------- -------
new DateFormat.yMd() -> 7/10/1996
new DateFormat('yMd') -> 7/10/1996
new DateFormat.yMMMMd('en_US') -> July 10, 1996
new DateFormat.jm() -> 5:08 PM
new DateFormat.yMd().add_jm() -> 7/10/1996 5:08 PM
new DateFormat.Hm() -> 17:08 // force 24 hour time
J'espère maintenant que vous pouvez obtenir tout type de format de date requis en utilisant les formats ci-dessus.
Si vous préférez un format plus concis et sur une seule ligne, basé sur la réponse de Günter Zöchbauer, vous pouvez également écrire:
DateTime dateToday = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day) ;
Cependant, cela fera 3 appels à DateTime.now (), la variable supplémentaire ne sera pas requise, surtout si elle est utilisée avec l'opérateur ternaire Dart ou à l'intérieur du bloc de code Flutter UI.