1

文字列を日時に変換したい。エラーが発生しますThis is not a valid datetime

変換したい文字列とコードは次のとおりです。

string date1 = "9/13/2012 5:26:06 PM";
TimePart = DateTime.ParseExact(date1, "M/d/yyyy HH:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
4

5 に答える 5

6

M/dd/yyyy h:mm:ss tt私はそれがあなたのフォーマットパラメータにあるべきだと思います。

于 2012-10-18T14:10:10.713 に答える
3

あなたのフォーマットは本当にそうM/d/yyyy h:mm:ss ttです。違いは、 (24時間、0から2桁への埋め込みh)ではなく、(12時間、必要な数の桁のみ)です。HH

入力形式がまったく異なる可能性がDateTime.Parseある場合は、正確な形式を指定する必要がないように、代わりに使用する必要があります。 ParseExactより高速で、指定された形式と一致する必要があります。これはキャストで望ましい場合があります。

于 2012-10-18T14:12:19.817 に答える
2

小文字を使用する必要がありますh

DateTime TimePart = DateTime.ParseExact(
                                date1,
                                "M/d/yyyy h:mm:ss tt",
                                CultureInfo.InvariantCulture);

Console.WriteLine(TimePart); // 09/13/2012 17:26:06

大文字の「H」は24時間制で、小文字の「h」は午前/午後の12時間制です。

于 2012-10-18T14:14:28.393 に答える
2

h12時間制には小文字を使用する必要があります(AM/PM指定子があるため)。

さらに、時間にhつながるものがなく、それを期待しているので、 1つだけを使用する必要があります。0hh

動作するフォーマット文字列:

"M/d/yyyy h:mm:ss tt"
于 2012-10-18T14:14:31.257 に答える
1

HHが「5」と一致していないようです。試してみてくださいh

于 2012-10-18T14:11:03.100 に答える