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

时间:2010-10-05 18:03:37

标签: c# .net

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

String was not recognized as a valid DateTime.

仅当我从位于与美国不同的国家/地区的计算机上运行应用程序时,才会出现此错误。我在字符串中看到的是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"));

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

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

1 个答案:

答案 0 :(得分:10)

你应该用“HH:mm”而不是“hh:mm” - “HH”用于24小时制; “hh”是12小时制。所以14不是“hh”的有效值。

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