2008-09-23 50 views

回答

26
string[] formats = {"yyyyMMdd", "MM/dd/yy"}; 
var Result = DateTime.ParseExact(input, formats, CultureInfo.CurrentCulture, DateTimeStyles.None); 

DateTime result; 
string[] formats = {"yyyyMMdd", "MM/dd/yy"}; 
DateTime.TryParseExact(input, formats, CultureInfo.CurrentCulture, DateTimeStyles.None, out result); 

更多MSDN文檔中的信息上ParseExactTryParseExact

+0

這比我的好。不知道你可以爲格式做一個字符串數組。非常好! – 2008-09-23 19:42:00

3
+0

由於我無法編輯您的答案,我認爲這可能有助於提供該方法的MSDN文章的鏈接。 http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx – 2008-09-23 19:39:50

+0

[@Yadyn]:我覺得intellisense就足夠了,但是確定我加入了一個徹底的鏈接 - 謝謝! – 2008-09-25 18:38:24

0

你也可以做Convert.ToDateTime

不能肯定任

0

使用,如果它失敗的TryParse不會拋出異常的優點。另外,TryParse將返回True/False,表示轉換成功。

Regards ...

3

你也可以嘗試TryParseExact設置確切的格式。 方法,這裏的文檔:http://msdn.microsoft.com/en-us/library/ms131044.aspx

例如,

DateTime outDt; 
bool blnYYYMMDD = 
    DateTime.TryParseExact(yourString,"yyyyMMdd" 
          ,CultureInfo.CurrentCulture,DateTimeStyles.None 
          , out outDt); 

我希望我能幫到你。

0

您可以使用TryParse方法同時檢查有效性和解析。

DateTime output; 
string input = "09/23/2008"; 
if (DateTime.TryParseExact(input,"MM/dd/yy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out output) || DateTime.TryParseExact(input,"yyyyMMdd", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out output)) 
{ 
    //handle valid date 
} 
else 
{ 
    //handle invalid date 
}