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
空空如也
解决方案
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();
再次,这迫使对地图转换的急切评估。
推荐阅读
- python-3.x - 无法连接 h2o 服务器 python3
- xamarin.forms - 如何在 Xamarin.Forms 的通知图标中添加任何数字
- java - 谁能帮我理解为什么我得到两个不同的密钥哈希?
- node.js - npm run build elifecycle 错误代码 - 无法找出问题
- azure-devops - vsts 阶段条件:如何继续下一阶段?
- amazon-web-services - Cloud9 AWS Lambda 中的意外令牌函数
- c# - C# - Outlook VSTO - Exchange - "GetFolderFromID" 消息接口返回未知错误
- javascript - 为什么没有定义ID?
- swift - 如何使 RealmSwift RealmOptional 与 Swift Codable 兼容?
- python - bluebooth 的 Python 属性错误