将字符串转换为DateTime时的FormatException

时间:2012-03-30 22:52:25

标签: c# datetime formatexception

我的任务是从XML文件中检索数据。 XML文件中的每个节点都包含日期和时间。要阅读和转换它,我使用以下内容:

date = DateTime.ParseExact(turnoNode.SelectSingleNode(“FechaHoraAlta”)。InnerText,“dd / MM / yyyy 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,它是“22/04/2012 19:37:52”。它只是无法转换它,但我不知道为什么。

我在stackoverflow上看到了很多类似的问题,但到目前为止我还没有找到任何合适的解决方案。

有人知道问题是什么吗?

提前谢谢。

1 个答案:

答案 0 :(得分:4)

查看格式模式:

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

“hh”表示十二小时时钟,通常与AM / PM指示符的“tt”结合使用。所以19不是有效值。你想要“HH”代替“hh”,因为“HH”使用24小时制。

有关详细信息,请参阅custom date and time format strings上的MSDN。