Windows 7中的DateTime.TryParse()失败

时间:2010-03-09 10:25:36

标签: c# windows-7

当我们将区域设置更改为意大利语时,

DateTime.TryParse在Windows 7中失败。我甚至尝试TryParseExact但没有运气。有没有人对此有任何想法或遇到过这种情况?

代码是这样的:

string[] formats = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "M/d/yyyy h:mm", "M/d/yyyy h:mm", "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm", "dd/MM/yyyy HH:mm"}; 
if (DateTime.TryParseExact(cb.Text, formats, CultureInfo.InVariantCulture, DateTimeStyles.AllowLeadingWhite, out date_and_time))

但它返回false。

甚至尝试过:

if (DateTime.TryParse(cb.Text, CultureInfo.InvariantCulture, DateTimeStyles.None,out date_and_time) == true)` 

cb.Text是一个String,它包含字符串表示形式的DateTime。

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用中性CultureInfo调用它?

喜欢这个

DateTime parsed;

if(DateTime.TryParse("2010-03-09", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed))
    Console.WriteLine(parsed)

或者TryParseExact

DateTime.TryParseExact("2010-03-09", "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)

答案 1 :(得分:0)

在意大利语中,时间分隔符标记被解析为。而不是:

尝试在单引号中转义时间分隔符令牌,例如:

"M/d/yyyy h':'mm':'ss tt"

答案 2 :(得分:0)

尝试使用Thread Culture方法将CreateSpecificCulture设置为Italian Culture

查看文化列表here