web-dev-qa-db-ja.com

DateTime.ParseExact()は24時間制の値を取得しませんか?

このコード行:

DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture);

「12:45」の「time」値を適切に解析しますが、「13:00」の例外をスローします

他のCultureInfo値を使用する必要がありますか、それとも12を超える時間値に「pm」を追加する必要がありますか...?

エラーメッセージは次のとおりです。System.FormatExceptionは処理されませんでしたMessage = Stringは有効なDateTimeとして認識されませんでした。

24
B. Clay Shannon

「hh」は12時間形式(01〜12)です。 24時間制には「HH」を使用する必要があります。

DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture);
54
Dave New

ハンスはすでにコメントセクションであなたの質問に答えていますが、 ここDateTime.ParseExactメソッドで使用されるすべての種類の日付形式を説明するMSDNリンクです。

2
Estefany Velez

これを試して:

DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture);

"u"は、ユニバーサルソート可能フォーマットを示します。

2
sdesciencelover