遇到一个小问题 - 我有一个函数,我将DATE作为String传递。然后将此Date作为参数传递给我验证它的存储过程,并返回值(0,1),无论它是否有效。这是代码明智的进展......
If CheckDateSP(mskAppointment.Text) Then
'Great now lets use this date
else
msgbox "Invalid date, re-enter please"
End if
将其传递给函数.....
Public Function CheckDateSP(ByVal CheckThisDate As String) As Boolean
'Setting Connection strings and all the good stuff
'here's where it gives me an error
Dim vDate As DateTime = CheckThisDate <----HERE is the error
End Function
现在这里有趣的部分 - 如果输入日期,我只会收到错误...
13/13/2016
如果我输入这些日期,那么一切都很好......
12/12/2017,10/10/2014
或任何其他日期,只要月份少于13
我得到的错误是......
ERROR转换自String&#39; 13/13/2016&#39;输入日期无效。
答案 0 :(得分:1)
试试这个
Dim input As String = "13/13/2016"
Dim dt As DateTime
If DateTime.TryParseExact(input, "MM/dd/yyyy", New Globalization.CultureInfo("en-US"), Globalization.DateTimeStyles.None, dt) Then
MessageBox.Show(String.Format("The string '{0}' parsed to '{1:yyyy-MM-dd hh:mm:ss}'", input, dt))
Else
MessageBox.Show(String.Format("Couldn't parse '{0}'", input))
End If
TryParseExact
的调用在格式正确时返回true,否则返回false。请注意,提供给TryParseExact
的格式为月/日/年,我使用Globalization.CultureInfo("en-US")
,因为我在美国。