首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将List<String>值转换为DateTime<List>日期时间值??颤振/飞镖

如何将List<String>值转换为DateTime<List>日期时间值??颤振/飞镖
EN

Stack Overflow用户
提问于 2022-08-17 12:38:28
回答 2查看 144关注 0票数 0

我有一个列表,其中包含一些字符串值(未定义多少,但它们是日期),我希望将这些值转换为DateTime,然后将每个值存储到以下行:

代码语言:javascript
运行
复制
specialDates:[DateTime(2022, 08, 16),DateTime(2022,08,03)]),

这一行只接受DateTime值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-17 12:54:30

如果该列表具有正确的字符串,可以转换为DateTime,则应遵循以下代码片段:

代码语言:javascript
运行
复制
 specialDates = stringsL.map((element) => DateTime.parse(element)).toList();
票数 3
EN

Stack Overflow用户

发布于 2022-08-17 13:05:34

我想DateTime<List>的意思是List<DateTime>。在这种情况下,您可以将List.mapDateTime.parse组合起来,快速将整个字符串列表转换为Datetime对象的列表。

代码语言:javascript
运行
复制
final strings = [
  '2022-01-01T12:00:00Z',
  '2022-01-02T12:00:00Z',
  '2022-01-03T12:00:00Z',
  '2022-01-04T12:00:00Z',
];

final dates = strings.map((s) => DateTime.parse(s)).toList();

如果您想要简洁,可以直接引用DateTime.parse,从而完全消除lambda函数:

代码语言:javascript
运行
复制
final dates = strings.map(DateTime.parse).toList();

请注意,这假定列表中的所有字符串都是有效的日期时间字符串,格式为DateTime.parse可以识别的格式(如ISO-8601时间戳)。如果您不能保证总是这样,而不是DateTime.parse,那么您希望使用DateTime.tryParse。但是,tryParse将返回一个DateTime?而不是一个DateTime (这意味着它可以为null),所以如果您不想这样做,您需要在列表上做更多的工作来过滤空值:

代码语言:javascript
运行
复制
final strings = [
  '2022-01-01T12:00:00Z',
  '2022-01-02T12:00:00Z',
  '2022-01-03T12:00:00Z',
  'asdfasd',
  '2022-01-04T12:00:00Z',
];

// Results in a List<DateTime?> with bad strings becoming null
final dates = strings.map(DateTime.tryParse).toList();

// Results in a List<DateTime> with bad strings filtered out
final dates = strings.map(DateTime.tryParse)
                     .where((dt) => dt != null)
                     .cast<DateTime>()
                     .toList();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73388629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档