我有一个网站,上面写着这样的日期:

CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(c => string.Equals(c.TwoLetterISOLanguageName, MvcApplication.Language));
return string.Concat(date.Day, ".", cultureInfo.DateTimeFormat.GetAbbreviatedMonthName(date.Month));

在我的PC(Windows 7,Service Pack 1,西类牙语)和服务器(Windows Server 2012,英语)中,MvcApplication.Languagees,因此我从列表中得到的文化是:es-ES

我希望他们都写相同的字符串(它们具有不同的文化,但我没有使用CurrentCulture)。但是结果是我的PC中的abr和服务器中的Abr.

我已经尝试过使用LinqPADMvcApplication.Language隔离,但这仍然有所不同。我已经打印了AbbreviatedDayNamesAbbreviatedMonthNames的数组,它们在每台计算机上都不同。

我做错什么了吗,或者这是预期的行为?如何使它完全独立于Windows/用户文化?

最佳答案

您可以从MSDN的this link中看到A,在某些Windows版本上,区域性信息可能会有所不同。



如果希望某种格式是静态的,则可以设置自己的CultureInfo对象并自定义其行为,并设置your own Date Time format作为示例。

关于c# - 来自同一文化的CultureInfo实例(基于同一文化)正在发生变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16240525/

10-11 22:12
查看更多