2012-03-30 50 views
0

我的任務是從XML文件中檢索數據。 XML文件中的每個節點都包含日期和時間。要讀取並轉換它我使用以下:將字符串轉換爲DateTime時的FormatException

日期= DateTime.ParseExact(turnoNode.SelectSingleNode( 「FechaHoraAlta」)的innerText, 「日/月/年爲hh:mm:ss」 的,CultureInfo.InvariantCulture) ;

對於前兩個節點它正確地轉換日期:

<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,它是「2012/4/22 19:37:52」。它只是不能轉換它,但我不知道爲什麼。

我在這裏看到很多類似的問題在stackoverflow,但到目前爲止我還沒有找到任何適當的解決方案。

有人知道問題是什麼嗎?

預先感謝您。

+0

也許'CultureInfo.InvariantCulture'預計時間爲12H格式?嘗試使用'CultureInfo.CurrentCulture' – sll 2012-03-30 22:54:25

+0

@sll:這不是期望它的文化 - 它是模式。 – 2012-03-30 22:55:53

+0

@Jon:gotcha,現在我明白了,很好! – sll 2012-03-30 22:59:10

回答

4

看看你的格式模式:

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

「HH」 是指小時時鐘,通常與 「TT」 的AM/PM指示結合。所以19不是有效的值。你想要「HH」而不是「HH」,因爲「HH」使用24小時制。

有關更多信息,請參閱custom date and time format strings的MSDN。

+0

謝謝,你是對的,現在它可以工作。我沒有想過。謝謝! – movax 2012-03-30 22:58:11