我有一个网站,上面写着这样的日期:
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.Language
是es
,因此我从列表中得到的文化是:es-ES
。我希望他们都写相同的字符串(它们具有不同的文化,但我没有使用
CurrentCulture
)。但是结果是我的PC中的abr
和服务器中的Abr.
。我已经尝试过使用LinqPAD与
MvcApplication.Language
隔离,但这仍然有所不同。我已经打印了AbbreviatedDayNames
和AbbreviatedMonthNames
的数组,它们在每台计算机上都不同。我做错什么了吗,或者这是预期的行为?如何使它完全独立于Windows/用户文化?
最佳答案
您可以从MSDN的this link中看到A,在某些Windows版本上,区域性信息可能会有所不同。
如果希望某种格式是静态的,则可以设置自己的CultureInfo对象并自定义其行为,并设置your own Date Time format作为示例。
关于c# - 来自同一文化的CultureInfo实例(基于同一文化)正在发生变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16240525/