DateTime dt;try
{
dt = DateTime.Parse(txt.Text.Trim());
}
catch(Exception ex)
{
dt = null;
}
if (dt !=null)
{
//输入正确
}
else
{
//输入错误}

解决方案 »

  1.   

    在客户端,最好用VBScript判断,VBScript有个函数  IsDate()可以判断一个字符串是否是日期
      

  2.   

    分两步进行(既考虑了性能又考虑了安全)
    1.先在客户端用js判断文本框是否是日期,
    2.然后再在后台代码判断,后台代码使用DateTime.TryParse()DataTime dt;
    bool result = DateTime.TryParse(TextBox1.Text.Trim(), out dt);
    if(!result)
       //不是日期
    else
      //shi
      

  3.   

    分两步进行(既考虑了性能又考虑了安全)
    1.先在客户端用js判断文本框是否是日期,
    2.然后再在后台代码判断,后台代码使用DateTime.TryParse()DataTime dt;
    bool result = DateTime.TryParse(TextBox1.Text.Trim(), out dt);
    if(!result)
       //不是日期
    else
      //shi
    同意这个观点。
      

  4.   

    發一個我自己寫的函數供你參考:
    Public Function FormatDate(ByVal strDate As String, ByVal Pad As Boolean, ByVal formatNum As Short) As String
            Dim dateArry() As String = strDate.Split("/")        If dateArry.Length <> 3 Then
                dateArry = strDate.Split("-")
                If dateArry.Length <> 3 Then
                    dateArry = strDate.Split(".")
                    If dateArry.Length <> 3 Then
                        FormatDate = "請輸入正確的日期格式"
                        Exit Function
                    End If
                End If
            End If
            If Not IsNumeric(dateArry(0)) OrElse Not IsNumeric(dateArry(1)) OrElse Not IsNumeric(dateArry(2)) Then
                FormatDate = "請輸入正確的日期格式"
                Exit Function
            End If        If Pad Then
                If [Short].Parse(dateArry(0)) < 10 And dateArry(0).Length = 1 Then dateArry(0) = "0" & dateArry(0)            If [Short].Parse(dateArry(1)) < 10 And dateArry(1).Length = 1 Then dateArry(1) = "0" & dateArry(1)            If [Short].Parse(dateArry(2)) < 10 And dateArry(1).Length = 1 Then dateArry(2) = "0" & dateArry(2)
            End If        Dim theDate As String
            Select Case formatNum
                Case 1  'IN: MM/DD/YYYY Out: MM/DD/YYYY
                    theDate = dateArry(0) & "/" & dateArry(1) & "/" & dateArry(2)
                Case 2  'In: MM/DD/YYYY Out: DD/MM/YYYY
                    theDate = dateArry(1) & "/" & dateArry(0) & "/" & dateArry(2)
                Case 3  'In: MM/DD/YYYY Out: YYYY/MM/DD
                    theDate = dateArry(2) & "/" & dateArry(0) & "/" & dateArry(1)
                Case 4  'In: MM.DD.YYYY Out: MM.DD.YYYY
                    theDate = dateArry(0) & "." & dateArry(1) & "." & dateArry(2)
                Case 5 'In: MM.DD.YYYY Out: DD.MM.YYYY
                    theDate = dateArry(1) & "." & dateArry(0) & "." & dateArry(2)
                Case 6 'In: MM.DD.YYYY Out: YYYY.MM.DD
                    theDate = dateArry(2) & "." & dateArry(0) & "." & dateArry(1)
                Case 7 'In: MM-DD-YYYY Out: MM-DD-YYYY
                    theDate = dateArry(0) & "-" & dateArry(1) & "-" & dateArry(2)
                Case 8 'In: MM-DD-YYYY Out: DD-MM-YYYY
                    theDate = dateArry(1) & "-" & dateArry(0) & "-" & dateArry(2)
                Case 9  'In: MM-DD-YYYY Out: YYYY-MM-DD
                    theDate = dateArry(2) & "-" & dateArry(0) & "-" & dateArry(1)
                Case Else
                    theDate = "Error"
            End Select        Return theDate
        End Function