於VB中的函isDate()
在vs2003中,isDate("'2012/06/13'")返回true,而且vs2008或vs2010中返回false。。是什麽
[解决办法]
VB2003:
Public Shared Function IsDate(ByVal Expression As Object) As Boolean
If (Not Expression Is Nothing) Then
If TypeOf Expression Is DateTime Then
Return True
End If
If TypeOf Expression Is String Then
Try
Dim time As DateTime = DateType.FromString(CStr(Expression))
Return True
Catch exception1 As Exception
End Try
End If
End If
Return False
End Function
VB2010:
Public Shared Function IsDate(ByVal Expression As Object) As Boolean
Dim time As DateTime
If (Expression Is Nothing) Then
Return False
End If
If TypeOf Expression Is DateTime Then
Return True
End If
Dim str As String = TryCast(Expression,String)
Return ((Not str Is Nothing) AndAlso Conversions.TryParseDate(str, (time)))
End Function
[解决办法]
意思是以前用DateType.FromString这个vb自己的内库,条件更宽松,新版用Conversions.TryParseDate这个通用性更好的类。