2010-11-21 46 views
6

你好,我有我想解析爲一個DateTime對象一個不尋常的日期格式我如何分析一個不尋常的日期字符串

string date ="20101121"; // 2010-11-21 
string time ="13:11:41: //HH:mm:ss 

我想用DateTime.Tryparse(),但我不能似乎得到這個開始。

感謝您的任何幫助。

+0

日期是否具有相同數量的字符,我的意思是說,月份和日期是allwa是2位數字? – SubniC 2010-11-21 16:30:20

回答

9
string date ="20101121"; // 2010-11-21 
string time ="13:11:41"; //HH:mm:ss 

DateTime value; 

if (DateTime.TryParseExact(
    date + time, 
    "yyyyMMddHH':'mm':'ss", 
    new CultureInfo("en-US"), 
    System.Globalization.DateTimeStyles.None, 
    out value)) 
{ 
    Console.Write(value.ToString()); 
} 
else 
{ 
    Console.Write("Date parse failed!"); 
} 

編輯:包在單引號時間分隔符令牌每弗雷德裏克的評論

+3

注意日期/時間格式字符串中的':'字符:它是[時間分隔符標記](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx),它可以讓你感到驚訝,例如:通過解析爲意大利語言環境中的'.'字符。您可能想要將其包裹在單引號內以避免它,並在以後避免麻煩:) – 2010-11-21 16:44:21

3

DateTime.TryParseExact()

5

可以使用DateTime.TryParseExact()靜態方法與custom format

using System.Globalization; 

string date = "20101121"; // 2010-11-21 
string time = "13:11:41"; // HH:mm:ss 

DateTime convertedDateTime; 
bool conversionSucceeded = DateTime.TryParseExact(date + time, 
    "yyyyMMddHH':'mm':'ss", CultureInfo.InvariantCulture, 
    DateTimeStyles.None, out convertedDateTime);