【问题标题】:how to change en-US dates to en-GB for asp.net?asp.net 如何将 en-US 日期更改为 en-GB?
【发布时间】:2012-03-14 11:20:41
【问题描述】:

在开发者机器上 (cassini)

new DateTime(2012,3,14).ToString("d")

结果

14/03/2012

这是正确的,但是当部署到完整的 IIS 服务器时,结果是

03/14/2012

服务器在控制面板/区域语言设置为全英文/UK/GB,在命令提示符下运行日期返回dd/MM/YYYY格式。

该站点同时设置为uiCulture="en-GB"culture="en-GB",它们显示在 web.config 全球化标签中。

我可以通过添加强制文化来解决这个问题

new DateTime(2012,3,14).ToString("d", new CultureInfo("en-GB"));

但我真的很想知道是什么格式设置不正确。

CultureInfo.CurrentCulture.Name, CultureInfo.CurrentUICulture.Name

都返回en-US


  • zh-CNM/d/yyyy(例如 2012 年 3 月 14 日)
  • zh-CNdd/MM/yyyy(例如 2012 年 3 月 14 日)

web.config 中的实际值

 <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />

【问题讨论】:

  • 从您的web.configglobalization 部分发布sn-p。用于转换日期和数字的语言环境来自System.Threading.Thread.CurrentThread.CurrentCulture;这会返回什么文化?
  • 题外话:您是否考虑过使用 IIS Express 而不是 Casini 来更好地获得与在 IIS 上的生产环境相同的结果?

标签: c# asp.net iis datetime-format


【解决方案1】:

我设法通过将其放入 web.config 来使其工作

<globalization culture="en-GB"/>

【讨论】:

  • 我认为它本身就是问题该站点设置为 uiCulture="en-GB" 和culture="en-GB" 并且这些显示在 web.config 全球化标签中。
  • 那很好,如果你想更进一步,你也可以将它添加到C:\Windows\Microsoft.NET\Framework[框架版本]\Config\Machine下的Machine.config文件中。配置(或类似路径)。然后更改将应用​​于所有 .NET 应用程序,但不会影响服务器上的常规全球化设置。
  • 我的理解是 web.config 胜过 machine.config
【解决方案2】:

在你的web.config 添加

<globalization culture='auto' uiCulture='auto' />

然后,假设浏览器被正确配置为传递首选语言环境,处理请求的工作线程将正确设置其CurrentCultureCurrentUICulture

任何依赖于语言环境的操作(包括诸如DateTime 格式d 之类的东西)都将使用客户的偏好。

MSDN 上 web.config 的全球化元素:https://msdn.microsoft.com/en-us/library/ydkak5b9(v=vs.71).aspx

【讨论】:

  • 在我开始调查这个问题之前,全球化标签只有 UTF-8 设置,我尝试了多个浏览器/机器以确保浏览器不是罪魁祸首。
  • @rob HTTP 请求的Accept-Language 标头是什么? (Fiddler 在这些情况下是一个非常有用的工具)。
  • IE9 发送Accept-Language: en-GB,Chrome 发送Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
  • @rob 我刚刚重新测试过:在 Win2k8R2 上使用 IIS7.5 和 .NET 4.5 (Beta)。系统区域设置为 en-GB,因此没有 &lt;globalization&gt; 获取 en-GB/en-US(文化/UI-文化)。使用&lt;globalization ...auto...auto/&gt;,浏览器会遵循:请求具有fr-FR,然后线程将fr-FR用于文化和UI-culture(并且en-GB请求现在同时具有文化 UI-culture英文版)。您使用的是什么版本的 .NET 和 IIS?
  • w2k8[标准] SP2(64 位) IIS7 .NET 4.0.30319
猜你喜欢
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2022-01-03
  • 2018-03-30
  • 2015-01-18
  • 1970-01-01
相关资源
最近更新 更多