首页 > 解决方案 > 将日期时间列表转换为字符串

问题描述

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

    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空空如也

标签: flutter

解决方案


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

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

您可能想使用:

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

在上面的代码中,是 print 函数强制转换运行。

或者,您可以使用将 list.map 的结果转换为列表

var datesList = dates.toList();

再次,这迫使对地图转换的急切评估。


推荐阅读