C# 错误:字符串未被识别为有效的日期时间

C# 错误:字符串未被识别为有效的日期时间,c#,parsing,datetime,C#,Parsing,Datetime,字符串未被识别为有效的日期时间 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.FormatException:字符串未被识别为有效的日期时间 源错误: { DateTime registrationDate = Convert.ToDateTime(frmclientcollection["regdate"].ToString()); DateTime ContractPeriod = Conv

字符串未被识别为有效的日期时间

描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.FormatException:字符串未被识别为有效的日期时间

源错误:

{
   DateTime registrationDate = Convert.ToDateTime(frmclientcollection["regdate"].ToString());
   DateTime ContractPeriod = Convert.ToDateTime(frmclientcollection["ContractPeriod"].ToString());
   var clientModel = new ClientRegistration()
   {
   }
}
这是我在将
字符串
转换为
日期时间
时遇到的错误。 字段名称完全正确,如视图中所示。
请提供解决方案。

考虑使用DateTime。Tryparse:

   string strToParse = "04-02-2013";
           DateTime result;
           if(!DateTime.TryParse(strToParse, out result))
           {
             string error = strToParse+ " is not a valid date";
   }

问题很可能是“frmclientcollection[“ContractPeriod”]”没有返回您期望的字符串

此外,你还应该在你的问题中适当地添加C#标记,这会有什么帮助?如果
Convert.ToDateDTime()
没有,为什么
DateTime.TryParse()
会起作用?@svick,根据,“如果您不希望在转换失败时处理异常,可以调用DateTime.TryParse方法。它返回一个布尔值,指示转换成功还是失败。”@EdmundSchweppe,但问题不是“如何避免例外?”,而是“如何获得日期?”(至少我认为是这样,问题不是很清楚。)@svick,就我所知,OP的问题是如何避免例外。(不过,正如您所说,还不太清楚。)那么,您要传递给
ToDateTime()
的值是什么?您的区域性设置是什么?frmclientcollection[“regdate”]的数据类型是什么?如果是
DateTime
,为什么要转换为
string
,然后再转换回
DateTime