1

(データベースエントリからの)日付を正しい形式に変換するための次のコードがあります。

Dim blah As Date = "02/29/2001"
MsgBox(Format(blah, "yyyy-MM-dd"))

しかし、それは私にこれを言い続けます:

文字列「02/29/2001」からタイプ「日付」への変換は無効です。

2001年2月29日には29日がなく、その年は28日しかないことがわかりました。では、データベーステーブルの日付が正しく入力されていない場合にエラーがスローされないように、これをどのように確認しますか?

4

2 に答える 2

2

代わりに使用できるTryParseExactので、次のようになります。

Dim enUS As New CultureInfo("en-US") 
Dim dateString As String 
Dim blah As Date 

' Parse date with no style flags.
dateString = "02/29/2001"
If Date.TryParseExact(dateString, "MM/dd/yyyy", enUS, DateTimeStyles.None, dateValue) Then
   MsgBox(Format(blah, "yyyy-MM-dd"))

Else
   MsgBox(String.Format("'{0}' is not in an acceptable format.", dateString))
End If 
于 2012-10-24T14:45:53.167 に答える
2

使用できますIsDate()

文字列または日付を日付に変換できる場合、この関数は true を返します。

このような

Dim dateAndTime As String
dateAndTime = "March 15, 1981 10:22 AM"
noDate = "Hello"
dateCheck = IsDate(dateAndTime)
dateCheck = IsDate(noDate)

これは、最初のものに対して true を返し、2 番目のものに対して false を返します。

また、この関数は、あなたの場合のように29、30、または31日の月で機能します

ここにmsdnリンクがあります

于 2012-10-24T14:45:13.297 に答える