如何格式化列表中的日期?

时间:2019-09-21 16:25:55

标签: flutter dart

是否可以格式化日期列表?我尝试通过格式化列表来对其进行格式化,但是出现了错误。

不能将参数类型“列表”分配给参数类型“ DateTime”。

    var list = <DateTime>[];
    DateTime start = DateTime(2018, 12, 30);
    final end = DateTime(2022, 12, 31);

    while (start.isBefore(end)) {
      list.add(start);
      start = start.add(const Duration(days: 1));
    }

    print(DateFormat("MM-dd-yyyy").format(list)); // The argument type 'List<DateTime>' can't be assigned to the parameter type 'DateTime'.

当我格式化日期到列表中之前,会出现错误,提示您不能在字符串上使用isBefore。

   var list = <DateTime>[];
    DateTime start = DateTime(2018, 12, 30);
    var date = DateFormat("MM-dd-yyyy").format(start);
    final end = DateTime(2022, 12, 31);

    while (date.isBefore(end)) { //The method 'isBefore' isn't defined for the class 'String'.
      list.add(start);
      start = start.add(const Duration(days: 1));
    }

1 个答案:

答案 0 :(得分:1)

将第一个代码段更改为以下代码:

    var list = <String>[];
    DateTime start = DateTime(2018, 12, 30);
    final end = DateTime(2022, 12, 31);

    while (start.isBefore(end)) {
     var formatedData = DateFormat("MM-dd-yyyy").format(start)
      list.add(formatedData);
      start = start.add(const Duration(days: 1));
    }

由于format()方法返回String,然后将列表更改为键入String,然后在while循环内,您可以格式化start日期并将其添加到列表。