0

どちらの例でも、次のような文字列を指定しています。26-03-17

Dim mvarValor As String Dim dateVarValor As 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.TryParse3 種類の例外をスローします

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 に答える