2

my の値がtextbox正しいかどうかを判断するにはどうすればよいdateですか?

例: これは私のテキストボックスの日付の値です:01/32/2013

日付の値が間違っていることはわかっていますが、形式が間違っていると判断するにはどうすればよいですか? を使用することでそれを回避できますが、try and catch使用したくありません。問題の解決策が見つからない場合は使用します。

<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>
4

3 に答える 3

4

ユーザーが日付を入力できるようにするのではなく、テキストボックスにデータを入れるカレンダーコントロールを使用しないのはなぜですか..これにより、ユーザーはカレンダーコントロールからのみ日付を選択する必要があるため、ユーザーが間違ったデータ値を入力しないようになります

また

このようにできるよりもデータ形式を知っている場合

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
 }

有効な日付でない場合は、 false の値を返します。このように、日付のデータを検証できます

于 2013-01-14T08:01:44.680 に答える
3

DateTime.TryParseメソッドを使用できます。この方法で使用されるのは、アプリケーションの現在の文化です。したがって、失敗した場合は単純に を返しますfalse

DateTime dateValue = default(DateTime);
if (DateTime.TryParse(dateString, out dateValue)) 
   //SUCCESS 
else 
  //FAILURE
于 2013-01-14T08:01:10.250 に答える
2
DateTime dt;

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


  //do stuff;
}
于 2013-01-14T08:02:01.450 に答える