0

在这两个示例中,我都给它一个字符串,如下所示:26-03-17

将 mvarValor 调暗为字符串 将 dateVarValor 调暗为 DateTime

此代码段在以下位置引发异常TryParse

If Not mvarValor = Nothing AndAlso DateTime.TryParse(mvarValor, dateVarValor) Then
    Return Format(dateVarValor, mvarFormat)
Else
    Return strNull
End If

下一个代码片段不会抛出异常,而是False应该抛出异常:

DateTime.TryParse(mvarValor, dateVarValor)
If dateVarValor = Nothing Then
    Return strNull
Else
    Return Format(dateVarValor, mvarFormat)
End If

为什么第一个代码片段给了我一个例外?

提前致谢!

4

2 回答 2

1

您需要传入一个 Y2K 兼容日期。解析器无法从 2 位数字中分辨出年份。如果您通过 2003-12-25,它将验证该日期确实存在,但 03-12-25 是模棱两可的。

于 2012-11-02T19:52:25.160 回答
1

DateTime.TryParse抛出三种类型的异常

http://msdn.microsoft.com/en-us/library/9h21f14e(v=vs.100).aspx

你一定会得到其中之一。这是 DateTime.TryParse 的正确用法

var culture = CultureInfo.CreateSpecificCulture("en-US");

string parsedDateTime = null;

if (DateTime.TryParse(parseMe, culture, DateTimeStyles.None, out dateResult))
{
    parsedDateTime = dateResult;
}

此代码段将解析日期时间而不会引发异常。

我希望这有帮助 :)

于 2012-11-02T20:11:16.710 回答