0

私のAsp.net Webサイトには、2つのテキストボックス(txtstartdate、txtenddate)があり、JQquery Datepickerが適用され、ポップアップが日付を形式(「05/24/2012」)で提供します。(" de ")に変更すると、cultureInfo(" en-US ") で正常に動作します。つまり、ドイツ語に変更すると、 "System.FormatException: String was not registered as a valid DateTime."エラーが発生します。. 私のコードビハインドファイルでは、このコードを書いています

 string sDate = txtstartdate.Text;  //  05/01/2012 (debugging gives this values)
 string eDate = txtenddate.Text;    //   05/24/2012 (debugging gives this values)

 DateTime startdate = Convert.ToDateTime(sDate); //  5/1/2012 12:00:00 AM
 DateTime enddate = Convert.ToDateTime(eDate);   //  5/24/2012 12:00:00 AM

私の要件は、datetime変数が 5/1/2012 12:00:00 AMの形式の日付を指定する必要があることです。そのため、列データ型Datetimeを持つMsSql サーバーの既存のテーブルで選択クエリを実行できます。 (2012/5/1 12:00:00 AM) 形式

CultureInfoを (Masterpage ドロップダウンリストから) Englsih からドイツ語に変更した後、エラーが発生します これを試しましたが、機能しません

 DateTime startdate = DateTime.ParseExact(sDate, "M/d/yyyy", null); 
 //tried also "MM/dd/yyyy"

注:任意の cultileinfo を設定しますが、日時パターンは常に 5/1/2012 12:00:00 AM、つまりen-USculture

4

2 に答える 2

1

入力が常にその形式であることが確実であると仮定すると、"MM/dd/yyyy"を呼び出すときに形式文字列としてを使用してみることができます。ParseExact

または、代わりに使用してみてくださいConvert.ToDateTime(yourString, CultureInfo.InvariantCulture)

于 2012-05-24T12:26:46.853 に答える
0

この場合、カレンダーのaltFormatを SQL サーバーで使用される形式に設定する必要があると思います。次に、隠しフィールドを使用して、各日付ピッカーの altDate を格納できます。送信すると、ユーザーに表示されるカルチャ固有の値ではなく、正しい形式のaltFieldの値がサーバーに送信されます。

于 2012-05-24T13:26:15.813 に答える