VB.Net验证日期

时间:2016-11-03 20:34:41

标签: sql-server vb.net validation date

遇到一个小问题 - 我有一个函数,我将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;输入日期无效。

1 个答案:

答案 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"),因为我在美国。