将字符串转换为DateTime时发生FormatException

本文关键字:FormatException DateTime 字符串 转换 | 更新日期: 2023-09-27 18:29:30

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

date=DateTime.ParseExact(turnNode.SelectSingleNode("FechaHoraAlta").InerText,"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上看到了很多类似的问题,但到目前为止,我还没有找到任何合适的解决方案。

有人知道问题出在哪里吗?

提前谢谢。

将字符串转换为DateTime时发生FormatException

查看您的格式模式:

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

"hh"是指十二小时时钟,通常与"tt"一起表示AM/PM指示符。所以19不是一个有效的值。您需要"HH"而不是"HH",因为"HH"使用24小时时钟。

有关详细信息,请参阅MSDN中的自定义日期和时间格式字符串。