“ en-GB”和“ en-Us”文化名称之间的区别

时间:2018-12-11 08:46:36

标签: c# .net datetime datetime-format

当我编写此代码的日期设置为“ 12/12/2018 20:08”时,就可以了

{
     var newCulture = new CultureInfo("en-GB");
     var date = (value as DateTime?)?.ToString(newCulture.DateTimeFormat.ShortDatePattern+" HH:mm", CultureInfo.InvariantCulture);
}

但是当我将区域性名称更改为“ en-Us”时,结果为“ 12.12.2018 20:08”(我所知道的格式不正确)-ShortDatePattern的返回日期格式不正确

我在另一个桌面上对其进行了测试,并且可以在其中两个桌面上正常工作。 可能对桌面设置有某种依赖性吗? 为什么日期格式多种多样?

1 个答案:

答案 0 :(得分:2)

new CultureInfo("en-GB")调用useUserOverride设置为true的ctor。这意味着,如果您的服务器环境具有使用自定义设置的指定区域性匹配项,则将使用这些设置而不是默认设置。因此,要解决您的问题CultureInfo("en-GB", false);CultureInfo.GetCultureInfo("en-GB")(对于缓存版本)

  

GetCultureInfo方法检索缓存的只读CultureInfo   宾语。与相应的调用   CultureInfo.CultureInfo(String)构造函数。

     

如果名称是当前区域性的名称,则返回CultureInfo   对象不反映任何用户替代。这使得方法   适用于没有真实用户的服务器应用程序或工具   系统上的帐户,并且需要加载多个区域性