DateTime.Parse:更改文化时的异常

ton*_*ony 7 .net c#

我正在解析一个字符串,将其转换为DateTime.我在某些情况下遇到错误:

String was not recognized as a valid DateTime.
Run Code Online (Sandbox Code Playgroud)

只有当我从位于与美国不同的国家/地区的计算机上运行应用程序时才会出现此错误.我在字符串中看到的是09/20/2010 14:11,在这种情况下,我得到一个例外.如果我有一个像这样的值:10/05/2010 12:54我没有例外.我想事实是,这一天是20岁,这台电脑在欧洲,所以它认为20个月.问题是我强迫它成为美国:

CompletedDttm = DateTime.ParseExact(value, "MM/dd/yyyy hh:mm", new CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

因为我得到了例外,我想确定这是正确的方法.

任何想法如何解析字符串的方式无论我在机器上运行什么文化都有效?

Jon*_*eet 10

您应该使用"HH:mm"而不是"hh:mm" - "HH"用于24小时制; "hh"是12小时制.所以14不是"hh"的有效值.

我希望即使在美国的机器上也能看到同样的问题......但是由于时区的差异,你可能只在美国机器上出现过下午1点的时间?