将DateTime列表转换为字符串

时间:2019-10-28 23:20:43

标签: flutter

我正在尝试将日期列表转换为字符串

    var list = <DateTime>[];
    DateTime start = DateTime(2019, 12, 01);
    final end = DateTime(2021, 12, 31);

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

    list.map((DateTime time) {
      var dateRange = DateFormat("MM-dd-yy").format(time);
      List<String> userSearchItems = [];

      userSearchItems.add(dateRange);

      print(userSearchItems);
    });

但是userSearchItems会变成空的

1 个答案:

答案 0 :(得分:1)

list.map中的代码块永远不会执行。

这是因为list.map产生列表的惰性转换。转换函数仅在从元素请求元素时执行。

您可能想使用:

var dates = list.map((DateTime time) {
      var dateRange = DateFormat("MM-dd-yy").format(time);
      return dateRange;
});
print(dates);

在上面的代码中,打印功能迫使转换运行。

或者,您可以使用

将list.map的结果转换为列表。
var datesList = dates.toList();

再次,这迫使人们急于评估地图变换。