将字符串转换为.net中的日期

我正在读取c#中的平面文件中的文本,需要测试某些值是否为日期。 它们可以是YYYYMMDD格式或MM / DD / YY格式。 在.Net中执行此操作的最简单方法是什么?

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

有关ParseExact和TryParseExact的MSDN文档中的更多信息。

您也可以尝试使用TryParseExact设置精确格式。 方法,这里的文档: http : //msdn.microsoft.com/en-us/library/ms131044.aspx

例如

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

我希望我帮助你。

DateTime.TryParse方法

你也可以做Convert.ToDateTime

不确定两者的优点

如果失败,使用TryParse不会抛出exception。 此外,TryParse将返回True / False,表示转换成功。

问候…

您可以使用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 }