首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于操作系统的CultureInfo实例(来自相同区域性)会发生变化

基于操作系统的CultureInfo实例(来自相同区域性)会发生变化
EN

Stack Overflow用户
提问于 2013-04-26 23:53:42
回答 1查看 412关注 0票数 5

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

代码语言:javascript
复制
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 (Windows7,Service Pack1,西班牙语文化)和服务器(Windows Server2012,英语文化)中,MvcApplication.Language都是es,所以我从列表中得到的文化是:es-ES

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

我尝试过使用LinqPADMvcApplication.Language中隔离出来,但它仍然是不同的。我打印了AbbreviatedDayNamesAbbreviatedMonthNames数组,它们在每台计算机上都是不同的。

是我做错了什么,还是这是预期的行为?我怎么做才能使它完全独立于Windows /用户文化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-08 04:38:53

你可以在MSDN的this link中看到,在某些windows版本中,区域性信息可能有所不同。

请记住,区域性名称和标识符仅表示可在特定计算机上找到的区域性的子集。Windows版本或service packs可以更改可用的区域性。应用程序使用CultureAndRegionInfoBuilder类添加自定义区域性。用户使用Microsoft区域设置生成器工具添加自己的自定义区域性。Microsoft Locale Builder是使用CultureAndRegionInfoBuilder类以托管代码编写的。

如果您希望某些格式是静态的,您可以构建自己的CultureInfo对象并定制它的行为,例如设置your own Date Time format

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16240525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档