DateTime ParseExact引发异常

Rom*_*key 3 c# datetime

好吧,我想解析那个日期

5/10/2013 002704

        var stt = "5/10/2013 002704";
        result = DateTime.ParseExact(stt, "dd-MM-yyyy HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

但我得到了这个例外

字符串未被识别为有效的DateTime.

但是!,此代码仅用于解析时间*without date*

        var stt = "002704";
        result = DateTime.ParseExact(stt, "HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

好吧,我希望有人帮助我解决这个问题,并提前感谢...

提示:这也是失败的

    var stt = "5/10/2013 002704";
    result = DateTime.ParseExact(stt, "dd/MM/yyyy HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

好吧它有效!感谢每一个人帮助我,为他的\非常好的帮助,我非常感谢.此外,我将在下次考虑XY问题:D.

Jim*_*elo 5

啊,你正在做一个完全解析dd但是传入的解析d.将输入字符串更改为"05/10/2013 002704",并确保/在分隔符中使用.

var stt = "05/10/2013 002704";
result = DateTime.ParseExact(stt, "dd/MM/yyyy HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

编辑

对不起,我不得不接听电话,无法完成我的想法.而不是使用dd你可能想要的d.它将使用05/10/2013或最多31个数字(如问题评论中所指出).另外,我认为@DanJ做了很好的评论参考了这个方法的用例.

简短的回答是,如果您要使用Parse*Exact*(),您最好确保您提供的字符串与格式说明符匹配.

如果你要继续前进,ParseExact你应该使用:

result = DateTime.ParseExact(stt, "d/MM/yyyy HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)