解析异常日期运行列表

本文关键字:DateTime 列表 运行 异常 日期 | 更新日期: 2023-09-27 18:15:08

如果我有一个包含缩写Short Month和逗号分隔日期的字符串,如:

Jul 23, 30 , Aug 06, 13, 20, 27 
    or
Jul 1, 15, 30 , Aug 14, 26 , 

将其转换为日期时间列表的优雅方法是什么?

解析异常日期运行列表<DateTime>

您可以使用正则表达式和Linq:

var input = "Jul 23, 30 , Aug 06, 13, 20, 27";
var dates = 
    (from Match m in Regex.Matches(input, @"('w+)(?:['s,]+('d+))+")
     from Capture c in m.Groups[2].Captures
     let str = m.Groups[1].Value + " " + c.Value
     select DateTime.ParseExact(str, "MMM dd", null))
    .ToList();

请注意,如果存在无效日期,则会抛出错误。