我有下面的代码转换的日期(从数据库条目)到正确的格式:日期不是在日期正确的格式不存在
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