2014-07-27 20 views
-2

如果我有喜歡的縮寫短月份和逗號分隔日期的字符串:解析異常之日起算列出<DateTime>

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

什麼是藉此並將其轉換成日期時間的列表優雅的方式?

+0

在你的例子中有多少個字符串? 2?1? – terrybozzio

+0

@terrybozzio只有一個字符串。我只是舉了很多例子。 –

+0

我希望得到某種反饋,爲什麼這是兩次downvoted。如果這是一個不好的問題,請讓我知道爲什麼。 –

回答

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(); 

需要注意的是,如果有一個無效的日期,這將拋出一個錯誤。

+0

好的答案。謝謝您的幫助 ! –