2

私の現在のコードは次のようになります。

        DateTime dateBegin = DateTime.ParseExact(begin, "MM/dd/yyyy", null);
        DateTime dateEnd = DateTime.ParseExact(end, "MM/dd/yyyy", null);

ただし、「end」の日付が異なる場合は常に例外がスローされます。DateTimePicker コントロールから日付を取得するため、日付が「2010 年 1 月 12 日」のようになり、例外がスローされます。どうすればこれを回避できますか?

ありがとう。

4

5 に答える 5

12

これはウィンフォームですか?.Valueピッカーで使用するだけで、正しい結果が得られますDateTime-解析する必要はありません。

最終的に、「1/12/2010」「MM/dd/yyyy」ではありません。フォールバックとして ""M/d/yyyy" を試すこともできますか?

string s = "1/12/2010";
string[] formats = { "MM/dd/yyyy", "M/d/yyyy", "M/dd/yyyy", "MM/d/yyyy" };
DateTime value = DateTime.ParseExact(s, formats, CultureInfo.CurrentCulture, DateTimeStyles.None);
于 2009-12-16T16:34:26.033 に答える
4

DateTimePicker.Value を使用しないのはなぜですか?

于 2009-12-16T16:34:42.190 に答える
4

DateTimePicker から値を取得している場合、既に DateTime になっているそのコントロールの Value を使用してみませんか? なぜ文字列を解析しようとしているのかわからない...

于 2009-12-16T16:35:59.367 に答える
0

これはどう ?

string begin = @"1/12/2010";
DateTime dateBegin = DateTime.ParseExact(begin, "M/dd/yyyy", null);

良い参考書は

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2009-12-16T16:39:22.233 に答える
0

スタック/例外情報を提供した場合、ti の方が簡単に解決できるかもしれませんが、ParseExact が失敗しているためにスローされていると予想されます。

于 2009-12-16T16:35:10.617 に答える