【发布时间】:2019-08-29 12:17:32
【问题描述】:
我遇到了一个问题。我需要以西里尔文的特定格式 ddMMMyy 解析日期。当我在 Windows 上运行 .net 核心应用程序时,日期 08АПР19 正确解析为 2019-04-08 但是当我在 Linux 服务器上解析它时会抛出异常 例外:字符串“08АПР19”未被识别为有效的日期时间。
导致异常的代码如下:
DateTime.ParseExact(myDateVar, "ddMMMyy", CultureInfo.CreateSpecificCulture("ru-RU"));
然后我尝试在 Windows 和 Linux 上输出以下内容:
DateTime.Now.ToString("ddMMMyy", CultureInfo.CreateSpecificCulture("ru-RU"))
Windows 上的输出: 08апр19
和 Linux: 08Апр.19 Linux 上有一个奇怪的点
在我理解的 .net 框架中硬编码的格式中,我想知道为什么它依赖于平台。那么问题来了,Win 和 Linux 机器有什么不同,谁造成了这个问题?
【问题讨论】:
-
哪个 OS/.NET 版本?这可能是 OS 为这种文化返回的内容,或者可能已修复的 .NET Core CultureInfo 问题
-
它是 CentOS 7 上的 .net core 2.1
-
我在 Debian 和 el-GR 文化的 Core 3.1 上看到了类似的问题。 Windows 中的 AM/PM 指示符与 linux 中的不同。
标签: c# linux windows .net-core date-format