C# 在文本框中验证日期

C# 在文本框中验证日期,c#,asp.net,datetime,textbox,C#,Asp.net,Datetime,Textbox,如何确定我的文本框中的值是否为正确的日期 ex: 这是我文本框中日期的值:01/32/2013 我知道这是一个错误的日期值,但如何确定它是一个错误的格式? 我可以通过使用尝试捕捉来避免这种情况,但我不想使用它,如果我没有找到问题的解决方案,我会使用它 <asp:TextBox ID="txtMEditStartDt" runat="server" Text='<%# Bind("StartDt", "{0:MM/dd/yyyy}") %>' CssClass="date

如何确定我的
文本框中的值是否为正确的
日期

ex: 这是我文本框中日期的值:
01/32/2013

我知道这是一个错误的日期值,但如何确定它是一个错误的格式? 我可以通过使用
尝试捕捉
来避免这种情况,但我不想使用它,如果我没有找到问题的解决方案,我会使用它

<asp:TextBox ID="txtMEditStartDt" runat="server" Text='<%# Bind("StartDt", "{0:MM/dd/yyyy}") %>'
    CssClass="datePicker" SkinID="textSkin" Width="100px"></asp:TextBox>
<asp:MaskedEditExtender ID="MaskedEditStartDt" runat="server"
    TargetControlID="txtMEditStartDt" Mask="99/99/9999" MaskType="Date" 
    CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
    CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
    CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True"/>
<asp:CalendarExtender ID="calendarEditStartDt" runat="server" TargetControlID="txtMEditStartDt" Format="MM/dd/yyyy">
</asp:CalendarExtender>

您可以使用方法。在该方法中使用的是当前的应用文化。因此,如果出现故障,它将简单地返回
false

DateTime dateValue = default(DateTime);
if (DateTime.TryParse(dateString, out dateValue)) 
   //SUCCESS 
else 
  //FAILURE

为什么不使用Calander控件将数据放入文本框中,而不允许用户输入日期。。这将确保用户不会输入错误的数据值,因为用户只需要从日历控件中选择日期

如果你知道数据格式,你可以这样做

string dateTimeString = "28/08/2012";
DateTime date;
if(DateTime.TryParseExact(dateTimeString, 
   "dd/MM/yyyy", CultureInfo.InvariantCulture,DateTimeStyles.None, 
    out date))
 {
    //code to process valid date
 }

如果日期无效,则返回该日期的假值,这样,您就可以验证日期数据

使您的文本框只读,以便只控制并将数据放入文本框,并限制用户输入data@PranayRana如果我将“使我的文本框为只读”,则该值将变为null。我使用的文本框具有calendarExtender和maskedEditExtender,但如果用户键入日期而不将其设置为只读,该怎么办在GUI中选择一个日期,如果我单击该文本框,它将不会编译,因为返回一个
bool
,指示是否可以将其解析为
DateTime
。它还需要将
DateTime
变量作为
out
参数传递。
DateTime dt;

if(DateTime.TryParse("01/32/2013",out dt)){


  //do stuff;
}