编程语言
首页 > 编程语言> > c# – 什么“中性文化”打破了DateTime.TryParse()?

c# – 什么“中性文化”打破了DateTime.TryParse()?

作者:互联网

我有以下代码片段

DateTime date1;
CultureInfo neutralCulture = new CultureInfo("fr");
bool isNeutral = neutralCulture.IsNeutralCulture; // True

DateTime.TryParse("not a date", neutralCulture, DateTimeStyles.AdjustToUniversal, out date1);

然而,在没有抛出异常的情况下执行,the documentation声明

NotSupportedException: provider is a neutral culture and cannot be used in a parsing operation.

“fr”是一种中性文化,正如上面CultureInfo对象上的属性所证明的那样,所以我希望这段代码能够破解.

什么“中立文化”打破了这种方法 – 这在任何地方都有记录吗?

解决方法:

我对所有中性文化进行了快速测试,甚至没有人抛出异常,如下所示:

CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.NeutralCultures);
foreach (var thisCulture in cultures)
{
    DateTime date1;
    CultureInfo neutralCulture = new CultureInfo(thisCulture.Name);
    bool isNeutral = neutralCulture.IsNeutralCulture; // True

    DateTime.TryParse("not a date", neutralCulture, DateTimeStyles.AdjustToUniversal, out date1);
}

我不确定从中得出什么结论.文件可能有误吗?谁知道.

标签:c,net,globalization
来源: https://codeday.me/bug/20190701/1349424.html