当尝试以日期时间格式转换字符串值时,某个时间字符串变量当时带有空值,它会抛出异常无效格式的字符串。例如
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);
}
使用以下代码。
string abc=//date vale
DateTime dt;
if(DateTime.TryParse(abc, out dt)
{
// do something
}
看看DateTime.TryParse
[MSDN]。
编辑:
如果您不想复制此代码,请将其放在一个方法中,可能带有可为空的返回值:
public DateTime? ParseDate(string dateString)
{
DateTime dt;
if (DateTime.TryParse(dateString, out dt))
{
return dt;
}
else
{
return null;
}
}
您可以使用DateTime.TryParse(string s, out DateTime result)
. 此方法将尝试将字符串解析为结果并返回true
是否有效/false
如果无法解析。
string abc = //date vale
datetime dt;
bool didItWork = DateTime.TryParse(abc, out dt);
您应该使用DateTime.TryParse()
以确保避免异常。