2012-03-30 5 views
0

私の仕事はXMLファイルからデータを取得することです。 XMLファイル内のすべてのノードに日付と時刻が含まれています。私は以下を使用しています:文字列をDateTimeに変換中のFormatException

date = DateTime.ParseExact(turnoNode.SelectSingleNode( "FechaHoraAlta")InnerText、 "dd/MM/yyyy hh:mm:ss"、CultureInfo.InvariantCulture) ;最初の二つのノードについて

、正しく日付を変換する:問題が含む第3のノードで発生

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

を:

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

そしてFormatException例外は、その文字列として認識されなかったと言ってスローされます有効なDateTime。

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

私はstackoverflowで多くの同様の問題を抱えていましたが、今まで私は適切な解決策を見いだせませんでした。

誰かが問題の原因を知っていますか?

ありがとうございます。あなたのフォーマットパターンで

+0

おそらく 'CultureInfo.InvariantCulture'は12H形式の時間を期待していますか? 'CultureInfo.CurrentCulture'を使って試してください。 – sll

+0

@sll:それを期待するのは文化ではありません。それがパターンです。 –

+0

@ジョン:つかまえ、今見て、いいキャッチ! – sll

答えて

4

ルック:

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

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

詳細については、custom date and time format stringsのMSDNを参照してください。

+0

ありがとう、そうです、それは今では機能します。私はそれについて考えなかった。ありがとう! – movax

関連する問題