我有下面的代碼轉換的日期(從數據庫條目)到正確的格式:日期不是在日期正確的格式不存在
Dim blah As Date = "02/29/2001"
MsgBox(Format(blah, "yyyy-MM-dd"))
然而,它不斷地說我:
從字符串「02/29/2001」到類型「Date」的轉換無效。
現在我看到2/29/2001沒有一天29 - 只有28年。那麼我如何檢查這個數據庫表中的日期沒有正確輸入時不會拋出錯誤?
我有下面的代碼轉換的日期(從數據庫條目)到正確的格式:日期不是在日期正確的格式不存在
Dim blah As Date = "02/29/2001"
MsgBox(Format(blah, "yyyy-MM-dd"))
然而,它不斷地說我:
從字符串「02/29/2001」到類型「Date」的轉換無效。
現在我看到2/29/2001沒有一天29 - 只有28年。那麼我如何檢查這個數據庫表中的日期沒有正確輸入時不會拋出錯誤?
您可以使用IsDate()
,如果你的字符串或日期可以轉換成日期此函數返回true。
這樣
Dim dateAndTime As String
dateAndTime = "March 15, 1981 10:22 AM"
noDate = "Hello"
dateCheck = IsDate(dateAndTime)
dateCheck = IsDate(noDate)
這將返回的第一個真假的第二個
此外,該功能與29,30天或31天一個月就像你的情況
here's的MSDN鏈接
你可以使用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
自從你回覆之後,我給了你一個觀點!謝謝,羅蘭。 – StealthRT
這樣做的竅門!謝謝,馬克! – StealthRT