将字符串转换为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上看到了很多类似的问题,但到目前为止,我还没有找到任何合适的解决方案。
有人知道问题出在哪里吗?
提前谢谢。
查看您的格式模式:
"dd/MM/yyyy hh:mm:ss"
"hh"是指十二小时时钟,通常与"tt"一起表示AM/PM指示符。所以19不是一个有效的值。您需要"HH"而不是"HH",因为"HH"使用24小时时钟。
有关详细信息,请参阅MSDN中的自定义日期和时间格式字符串。