我有一个网站,上面写着这样的日期:
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
is es
所以我从列表中得到的文化是:es-ES
.
我希望他们都写相同的字符串(他们有不同的文化,但我没有使用CurrentCulture
)。然而结果是abr
在我的电脑和Abr.
在服务器中。
我试过这个隔离MvcApplication.Language
使用LinqPAD http://www.linqpad.net/但还是不一样。我已经打印了数组AbbreviatedDayNames
and AbbreviatedMonthNames
而且每台电脑上的设置都不同。
我做错了什么还是这是预期的行为?我怎样才能让它完全独立于Windows/用户文化?
一个你可以看到这个链接 http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx根据 MSDN,文化信息在某些 Windows 版本上可能有所不同。
请记住,区域性名称和标识符仅代表可以在特定计算机上找到的区域性子集。 Windows 版本或服务包可以更改可用的区域性。应用程序使用 CultureAndRegionInfoBuilder 类添加自定义区域性。用户使用 Microsoft Locale Builder 工具添加自己的自定义区域性。 Microsoft Locale Builder 是使用 CultureAndRegionInfoBuilder 类以托管代码编写的。
如果您希望某些格式是静态的,您可以构建自己的 CultureInfo 对象并自定义它的行为,设置您自己的日期时间格式 http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.datetimeformat.aspx, 举个例子
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)