1

選択した月がすでに過ぎているかどうかを確認しようとしています。

if (Convert.ToDateTime(DDMonths.SelectedItem.Text).Month > DateTime.Now.Month)
{
      //logic here if date is not in the past
}

DDMonths.SelectedItem.Text値はApril

ただし、次の Format exception エラーが発生します。

文字列は有効な DateTime として認識されませんでした。

4

6 に答える 6

2

Convert.ToDateTime日付形式を理解できない場合は、代わりにDateTime.ParseExactを使用する必要があります:

if(DateTime.ParseExact(DDMonths.SelectedItem.Text, "MMMM", CultureInfo.CurrentCulture).Month > DateTime.Now.Month) {
  ...
}
于 2013-07-26T07:39:40.590 に答える
1

したがって、現在の文化でTextDropDownList-Item変換できません。DateTimeだから多分あなたは月の名前を表示している(私が想定しているもの)か、エラーはもっと微妙です。を使用しListItem.Valueて、日時を特定の形式で保存できます。次に例を示します。

"yyyyMMdd"->"20130726"

次に、次の方法で解析できます。

var dt = DateTime.ParseExact("20130726", "yyyyMMdd", CultureInfo.InvariantCulture);

月名を許可する場合:

dt = DateTime.ParseExact("July", "MMMM", CultureInfo.InvariantCulture);
于 2013-07-26T07:42:37.900 に答える
0

ParseExactのバリアントを使用する必要がありますDateTime

DateTime.ParseExact("April", "MMMM", CultureInfo.InvariantCulture).Month // outputs 4

Value( DDMonths.SelectedItem.Value ) コンポーネントを使用して、必要に応じて入力する必要もあります。

于 2013-07-26T07:40:23.453 に答える