2008-09-23 57 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 
}