2012-10-24 216 views
1

我有下面的代碼轉換的日期(從數據庫條目)到正確的格式:日期不是在日期正確的格式不存在

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

然而,它不斷地說我:

從字符串「02/29/2001」到類型「Date」的轉換無效。

現在我看到2/29/2001沒有一天29 - 只有28年。那麼我如何檢查這個數據庫表中的日期沒有正確輸入時不會拋出錯誤?

回答

2

您可以使用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鏈接

+1

這樣做的竅門!謝謝,馬克! – StealthRT

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 
+0

自從你回覆之後,我給了你一個觀點!謝謝,羅蘭。 – StealthRT