如何将en-US日期更改为en.net的en-GB?

时间:2012-03-14 11:20:42

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

在开发者机器上(cassini)

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

结果

14/03/2012

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

03/14/2012

服务器在控制面板/区域语言中设置为所有英文/英文/ 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


  • en-US M/d/yyyy(例如2012年3月14日)
  • zh-CN dd/MM/yyyy(例如2012年3月14日)

web.config中的实际值

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

2 个答案:

答案 0 :(得分:28)

我设法通过将其放入web.config

来使其工作
<globalization culture="en-GB"/>

答案 1 :(得分:4)

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