我有一个笨重的Windows应用程序,其中广泛使用DateTime.TryParse(字符串值,输出结果)。
以下代码在Windows 7和Windows 10上可以流畅运行。
//在应用程序启动时完成以下操作
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-AU");
var success = DateTime.TryParse("20 02", out result);
//上面只是我们使用它的一种方式的示例。成功在这里,结果是-> 20/02/2020 12:00:00 AM
但是以上语句在Windows Server 2012 R2 Standard上执行时返回false。看起来像Win Server 2012打破了DateTime.TryParse。有趣的是,如果我使用.netFramework 3.5
,则它可以在所有OS中使用。但是我们正在使用框架v4.6.2(VS-2019)。
这是Microsoft OS或.netFramework 4.6中的错误吗?在没有进行任何代码更改的情况下,是否有任何现有的解决方法,可能没有.net框架补丁等。老实说,我很难对与此相关的代码进行任何更改,因为它的用法在1.5k以上。申请。
提前感谢!
也许不是答案,但是您可以在Windows Server 2012 R2上尝试一下。
foreach (var ci in CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures).OrderBy(ci => ci.Name))
{
Console.WriteLine("{0} ({1})", ci.Name, ci.EnglishName);
}
您是该列表中的文化的一部分吗?