-6

当尝试以日期时间格式转换字符串值时,某个时间字符串变量当时带有空值,它会抛出异常无效格式的字符串。例如

string abc=//date vale
 datetime dt=new datetime();
 dt=DateTime.Parse(abc);
//if abc comes null it throws exception.
//I can check in this way
if(abc!=null)
{
 dt=DateTime.Parse(abc);
}
4

5 回答 5

7

使用以下代码。

string abc=//date vale
DateTime dt;        
if(DateTime.TryParse(abc, out dt)
{
       // do something
}
于 2012-06-15T11:20:25.220 回答
7

看看DateTime.TryParse[MSDN]

编辑:

如果您不想复制此代码,请将其放在一个方法中,可能带有可为空的返回值:

public DateTime? ParseDate(string dateString)
{
    DateTime dt;
    if (DateTime.TryParse(dateString, out dt))
    {
        return dt;
    }
    else
    {
        return null;
    }
}
于 2012-06-15T11:21:35.200 回答
5

您可以使用DateTime.TryParse(string s, out DateTime result). 此方法将尝试将字符串解析为结果并返回true是否有效/false如果无法解析。

string abc = //date vale
datetime dt;
bool didItWork = DateTime.TryParse(abc, out dt);
于 2012-06-15T11:22:24.637 回答
5

您应该使用DateTime.TryParse()以确保避免异常。

于 2012-06-15T11:22:25.617 回答
4

用这个

Convert.ToDateTime();

并检查此链接

http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx

于 2012-06-15T11:21:42.900 回答