首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于开发和测试环境的不同DateTimeFormat

用于开发和测试环境的不同DateTimeFormat
EN

Stack Overflow用户
提问于 2011-08-14 16:31:49
回答 4查看 2.1K关注 0票数 4

在我的Application_BeginRequest MVC项目中的global.asax.cs ()方法中,有代码:

代码语言:javascript
复制
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(EnCultureKey);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(EnCultureKey);
Thread.CurrentThread.CurrentCulture.DateTimeFormat = new CultureInfo(EnGBCultureKey).DateTimeFormat;

变量是

代码语言:javascript
复制
private const string EnCultureKey = "en-US";
private const string EnGBCultureKey = "en-GB";

在dev环境中,所有日期都是DD/MM/YYYY格式,但在测试环境中它们是MM/DD/YYYY格式。

你能告诉我这种差异的原因是什么吗?

更新:

请看一下在VS服务器和IIS上设置ASP.NET MVC应用程序的文化

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-14 18:06:01

如果您确实希望覆盖所有页面的这些设置(而不是给用户一个选择),那么标准的方法是设置 in web.config

代码语言:javascript
复制
  <globalization uiCulture="en" culture="en-GB" />

如果要使用代码,MSDN页面还将指示您重写InitializeCulture()

InitializeCulture()发生得很早,但我怀疑Application_BeginRequest发生得更早,其影响被覆盖。

票数 4
EN

Stack Overflow用户

发布于 2011-08-14 17:00:53

尝试在Application_Start的global.asax方法上使用该代码,这将确保每次启动应用程序时,区域性信息都设置为您的规范。

例如,确保您使用了正确的格式时间来显示日期:

DateTime dt = DateTime.Now; Console.WriteLine(dt.ToString("d"));

票数 0
EN

Stack Overflow用户

发布于 2011-08-14 18:27:25

啊,我明白了,对不起。

我认为这是因为在这种情况下,您更改的是单个线程的区域性,而不是应用程序的所有线程。

将代码放在应用程序中的每个线程执行的位置,例如页面加载。

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

https://stackoverflow.com/questions/7058111

复制
相关文章

相似问题

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