好吧,我想解析那个日期
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.
啊,你正在做一个完全解析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)