2012-06-27 14 views
17

このライン:DateTime.ParseExact()は24時間の時間値を取得しません。コードの

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

は「午前12時45分」だけで罰金の「時間」の値を解析しますが、「午後1時00分」

の例外をスローし、私はいくつかの他のCultureInfoを使用する必要があります値を設定するか、12を超える時の値に「pm」を追加する必要がありますか?

エラーメッセージ:System.FormatExceptionが処理されませんでした メッセージ=文字列が有効なDateTimeとして認識されませんでした。

+13

"HH:mm"を使用して24時間形式を解析します。 –

+2

+1の質問に「grok」という言葉を使う –

答えて

44

"hh"は12時間形式(01〜12)です。 24時間のクロックには "HH"を使用する必要があります。

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

これを試してみてください:

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

"u"はユニバーサルソート可能な形式を示します。

2

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