0

私の仕事は、XML ファイルからデータを取得することです。XML ファイルのすべてのノードには、日付と時刻が含まれています。それを読んで変換するために、私は以下を使用しています:

date = DateTime.ParseExact(turnoNode.SelectSingleNode("FechaHoraAlta").InnerText, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);

最初の 2 つのノードでは、日付が正しく変換されます。

<FechaHoraAlta>19/04/2012 10:00:36</FechaHoraAlta>
<FechaHoraAlta>19/04/2012 11:00:05</FechaHoraAlta>

問題は、次を含む 3 番目のノードで発生します。

<FechaHoraAlta>22/04/2012 19:37:52</FechaHoraAlta>

次に、文字列が有効な DateTime として認識されなかったことを示す FormatException 例外がスローされます。

私はそれをデバッグしようとしましたが、私が知っているのは、InnerText が正しく取得されていることだけです。それは「22/04/2012 19:37:52」です。変換できませんが、その理由はわかりません。

ここstackoverflowで同様の問題をたくさん見ましたが、これまでのところ適切な解決策は見つかりませんでした.

誰かが問題が何であるかを知っていますか?

前もって感謝します。

4

1 に答える 1

4

あなたのフォーマットパターンを見てください:

"dd/MM/yyyy hh:mm:ss"

"hh" は12時間時計を意味し、通常は AM/PM 指定子の "tt" と組み合わせて使用​​します。したがって、19 は有効な値ではありません。「HH」は 24 時間時計を使用するため、「hh」ではなく「HH」が必要です。

詳細については、カスタムの日付と時刻の書式文字列に関する MSDN を参照してください。

于 2012-03-30T22:54:35.013 に答える