DateTime.Parse在Windows Server 2012上不起作用

问题描述 投票:0回答:1

我有一个笨重的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以上。申请。

提前感谢!

c# .net windows-server-2012-r2
1个回答
0
投票

也许不是答案,但是您可以在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);
}

您是该列表中的文化的一部分吗?

阅读:https://docs.microsoft.com/en-gb/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c

或执行此操作:https://docs.microsoft.com/en-us/archive/blogs/shawnste/locale-builder-v2-0-for-windows-8-1server-2012-r2-released

© www.soinside.com 2019 - 2024. All rights reserved.