gpt4 book ai didi

c# - DateTimeFormat.AbbreviatedMonthNames 在月份名称的末尾添加一个点

转载 作者:行者123 更新时间:2023-11-30 21:48:50 27 4
gpt4 key购买 nike

昨晚我们将 Web 服务层从物理 Windows 2008 r2 迁移到虚拟 Windows 2012。

我们在日志中收到大量关于 DateTime 格式无效的事件,这很奇怪,因为我们仔细检查了我们的区域设置。

长话短说:

CultureInfo.GetCultureInfo("es-MX").DateTimeFormat.AbbreviatedMonthNames

输出(使用 LinqPad5):

  1. 烯。
  2. 二月。
  3. 三月。

在我们 2012 年的新环境中,在 2008 年的 ouptus 中:

  1. 二月
  2. 三月

我们的解析是这样的:

DateTime.Parse("18 ene 16",CultureInfo.GetCultureInfo("es-MX"))

虽然它创造了奇迹,但现在它抛出了

格式异常:
该字符串未被识别为有效的 DateTime。有一个从索引 3 开始的未知单词。

同时

DateTime.Parse("18 ene. 16",CultureInfo.GetCultureInfo("es-MX"))

有效,但不是我们几个客户的预期输入。

在相同的运行时版本 (4.0.30319.42000) 上工作,仔细检查(再次)我们在两台服务器上的区域设置我还能寻找什么来解决这个问题(在放弃并用正则表达式替换破解它之前)?

谢谢。

最佳答案

遗憾的是,我在配置中找不到任何指向正确方向的内容。

以这样一个令人讨厌的黑客结束:

var cultura = CultureInfo.CreateSpecificCulture("es-MX");
if (cultura.DateTimeFormat.AbbreviatedMonthNames.First().EndsWith("."))
cultura.DateTimeFormat.AbbreviatedMonthNames = cultura.DateTimeFormat.AbbreviatedMonthNames.Select(c => c.Substring(0, c.Length > 1 ? c.Length - 1 : 0)).ToArray();

并在解析中使用该区域性。

关于c# - DateTimeFormat.AbbreviatedMonthNames 在月份名称的末尾添加一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com