0

重複の可能性:
DateTime.ParseExact 文字列形式の例外

FormatException発見された !

文字列を に変換しようとしましたDateTime

string dateString1 = "5/22/1985 12:00:00 AM";

DateTime myDate = 
    DateTime.ParseExact(dateString1, 
                        "mm-dd-yyyy",
                        System.Globalization.CultureInfo.InvariantCulture);

エラーが発生しますが、この形式の文字列を変換しようとすると

string dateString2 = "10-10-2000";

この 2 番目の文字列は正常に機能していますが、dateString1機能しません。

4

4 に答える 4

6

あなたのコードはあなたの質問に答えます。ParseExact最初の文字列を受け入れない形式が指定されたを使用しています。

MSDN から (http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx):

指定された形式とカルチャ固有の形式情報を使用して、指定された日付と時刻の文字列表現を、対応する DateTime に変換します。文字列表現の形式は、指定された形式と正確に一致する必要があります。

于 2013-01-23T20:11:20.177 に答える
1

これを試して:

DateTime myDate = DateTime.ParseExact(dateString1, "M/d/yyyy h:m:s tt", System.Globalization.CultureInfo.InvariantCulture);
于 2013-01-23T20:13:47.480 に答える
0

具体的には、コードで「mm-dd-yyyy」の形式に従って正確に日付を解析するようにしているため、もちろん、その形式の日付のみが機能します。代わりにDateTime.Parseを使用すると、両方の例が機能します。

于 2013-01-23T20:13:13.893 に答える
0

ParseExact の代わりに Parse を使用できます。

DateTime myDate = DateTime.Parse(dateString1);

これにより、2 つの例のいずれかが正しく解析されます。 http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

于 2013-01-23T20:17:12.917 に答える