2013-06-21 131 views
0

我可以獲得以下格式的日期:轉換日期字符串的DateTime C#

07 December, 2012 
7 December, 2012 
December 07, 2012 
12/07/2012 
12/7/2012 
在一個字符串變量從我必須確定日期,月份,年份

。日期可以是任何上述格式的字符串。我想知道必須有一個可以處理日期爲字符串數據類型的所有可能性的代碼。我的意思是我想通過日期作爲字符串,並獲取DateTime對象。

回答

2

我不確定DateTime.TryParse()是否可以正確處理它們,但這是我第一次嘗試。

參見http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx

+0

或DateTime.TryParseExact() –

+0

感謝DateTime.TryParse()效果很好。 –

+0

這不適用於任何文化。除此之外,如果問題是要確保給定的字符串可以解析爲DateTime。 'TryParse'不能確保它只能確保不會引發異常。另外,'TryParseExact'會更好,因爲它允許使用自定義格式字符串。 –

5

是,使用DateTime.ParseExact與所有可能允許的格式:

var strings = new[] { "07 December, 2012", "7 December, 2012", "December 07, 2012", "December 07, 2012", "12/07/2012", "12/7/2012" }; 
var formats = new[]{"dd MMMM, yyyy", "d MMMM, yyyy", "MMMM dd, yyyy", "dd/MM/yyyy", "dd/M/yyyy"}; 
var dates = strings 
    .Select(s => DateTime.ParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None)); 
foreach(DateTime d in dates) 
    Console.WriteLine("Year:{0} Month:{1} Day:{2}", d.Year , d.Month , d.Day); 

Demo

我已經使用CultureInfo.InvariantCulture執行日期分隔符/通常是日期 - 分離器你目前的文化(見The "/" Custom Format Specifier)。

0
DateTime.Parse("date string")