【问题标题】:DateTime.Parse not working on Windows Server 2012DateTime.Parse 在 Windows Server 2012 上不起作用
【发布时间】:2020-04-11 08:33:48
【问题描述】:

我有一个老旧的 Windows 应用程序,其中 DateTime.TryParse(string value, out result) 被广泛使用。

以下代码在 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,那么它适用于所有操作系统。但我们使用的是框架 v4.6.2 (VS-2019)。

这是 Microsoft 操作系统或 .netFramework 4.6 中的错误吗?是否有任何现有的解决方法,而无需对代码进行任何更改,可能是 .net 框架补丁等。老实说,我很难对与此相关的代码进行任何更改,因为它的使用量超过 1.5k应用。

提前致谢!!!

【问题讨论】:

  • 如果它真的在 10k 地方使用,也许你应该查找/替换 DateTime.TryParse -> DateTime.TryParseX 并提供你自己的扩展方法(或类似的)来处理这个......或切换到解析确切的路线。将两个数字放入日期解析例程中并希望它可以将一个用作日期,另一个用作当年的月份,这真的很糟糕
  • 如果您在DateTime.TryParse 之前打印出CultureInfo.CurrentCultureInfo.DateTimeFormat.DateSeparator - 它们是否相同?
  • @Cairus Jard - 我们正在尽力不更改代码,因为它曾经在其他操作系统中工作。 Windows Server 2012 R2 肯定有问题。
  • @Frank Nielsen - DateSepartor 在 Win Server 2102 上是“/”,这在 TryParse 工作的 Windows 10 中是相同的。
  • 您的 windows 10/7windows server 2012 R2 在 excat 相同的 .net 框架上运行应用程序吗?

标签: c# .net windows-server-2012-r2


【解决方案1】:

也许不是答案,但你能在你的 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

【讨论】:

  • 似乎 en-AU 在 Windows Server 2012 中不存在,但在 Windows 10 中。这可能是它的根本原因。
  • - 非常感谢 :) 如果我能够安装语言环境,将进一步更新。
猜你喜欢
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 2016-07-07
  • 2016-12-30
  • 2019-03-10
  • 1970-01-01
相关资源
最近更新 更多