如何获得Dart中的当前日期(w / o小时和分钟)?

时间:2016-01-20 21:15:49

标签: dart

我在文档中看到的只是Datetime.now()但它返回Timespan,我只需要日期。

谢谢。

10 个答案:

答案 0 :(得分:14)

now创建一个新日期,只包含您需要的部分:

DateTime now = new DateTime.now();
DateTime date = new DateTime(now.year, now.month, now.day);

答案 1 :(得分:7)

您可以将当前日期作为

 final now = new DateTime.now();
 String formatter = DateFormat('yMd').format(now);// 28/03/2020
            
问:问。您是否想知道如何记住日期格式(DateFormat('yMd'))?

A。=>那么Flutter Docs就是答案

DateFormat class允许用户从一组标准日期时间格式中进行选择,以及在某些语言环境下指定自定义模式。直接从文档中获取

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

现在希望您可以使用上述格式获得所需的任何日期格式。

答案 2 :(得分:2)

核心库中没有类来模拟日期和时间。您必须使用new DateTime.now()

请注意,日期取决于时区:巴黎的2016-01-20 02:00:00与西雅图的2016-01-19 17:00:00相同,但不一样。

答案 3 :(得分:1)

如果您只想要没有时间戳的日期。你可以借助intl包。

    main() {
      var now = new DateTime.now();
      var formatter = new DateFormat('yyyy-MM-dd');
      String formattedDate = formatter.format(now);
      print(formattedDate); // 2016-01-25
    } 

这需要intl包

答案 4 :(得分:0)

如果您希望基于GünterZöchbauer的答案更简洁,更简单的单行格式,还可以编写:

DateTime dateToday = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day) ; 

尽管它将对DateTime.now()进行3次调用,但不需要额外的变量,尤其是与Dart三元运算符或在Flutter UI代码块中一起使用时。

答案 5 :(得分:0)

首先转到pub.dev并获取intl包并将其添加到您的项目中。

DateFormat.yMMMMd()。format(您要呈现的日期。但必须具有DateTime类型)

答案 6 :(得分:0)

使用这个

import 'package:intl/intl.dart';


getCurrentDate() {
       return DateFormat('yyyy-MM-dd – kk:mm').format(DateTime.now());
}

答案 7 :(得分:0)

这不使用任何包(它将转换为字符串)

  DateTime dateToday =new DateTime.now(); 
  String date = dateToday.toString().substring(0,10);
  print(date); // 2021-06-24

答案 8 :(得分:0)

您可以使用 DateFormat 将日期时间格式化为字符串

import 'package:intl/intl.dart';

final DateFormat formatter = DateFormat('MM/dd/yyyy');
String createDate = formatter.format(DateTime.now());

答案 9 :(得分:-2)

在DateTime.now()中使用“天”