解析异常日期运行到列表<datetime> </datetime>

时间:2014-07-27 00:59:43

标签: c#

如果我有一个字符串,缩写为Short Month,逗号分隔日期如下:

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

采取这种做法并将其转换为日期时间列表的优雅方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用regular expression和一点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();

请注意,如果日期无效,则会产生错误。