C# 字符串未被识别为有效的DateTime c

C# 字符串未被识别为有效的DateTime c,c#,parsing,datetime,C#,Parsing,Datetime,为什么这条线不行 DateTime myDate = DateTime.ParseExact("04:05:14:17:17:09", "DD:MM:YY:HH:MM:SS", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.NoCurrentDateDefault); 这种格式不是你想要做的 尝试将其更改为dd:MM:yy:HH:MM:ss: 那么,我改变了什么: M

为什么这条线不行

DateTime myDate = DateTime.ParseExact("04:05:14:17:17:09", "DD:MM:YY:HH:MM:SS", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.NoCurrentDateDefault);

这种格式不是你想要做的

尝试将其更改为dd:MM:yy:HH:MM:ss:

那么,我改变了什么:

MM表示月份,MM表示分钟 ss必须是小写的 dd需要小写 yy需要小写 为了记录在案,我留下了HH大写,因为这意味着它是24小时,但小写是12小时


您可能需要查看MSDN页面,其中解释了所有这些内容。它有一些很好的例子可以帮助您。

格式字符串中的冒号不需要转义,TimeSpan中除外。冒号表示特定于区域性的时间分隔符-但无论如何,在不变区域性中,它是冒号。@JonSkeet啊,说得对。我已经习惯了处理时间跨度。谢谢我会把那部分拿出来。谢谢你的回答。出于兴趣,格式在你的控制之下吗?如果是,我强烈建议您选择更合理的方式,例如yyyy-MM-ddTHH:MM:ss。@Jonsket不是,这是我从服务器接收文件并需要处理它。而服务器是另一家公司的代码?哦,好吧:
DateTime myDate = DateTime.ParseExact("04:05:14:17:17:09", "dd:MM:yy:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.NoCurrentDateDefault);