【发布时间】: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-CN:
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" />
【问题讨论】:
-
从您的
web.config的globalization部分发布sn-p。用于转换日期和数字的语言环境来自System.Threading.Thread.CurrentThread.CurrentCulture;这会返回什么文化? -
题外话:您是否考虑过使用 IIS Express 而不是 Casini 来更好地获得与在 IIS 上的生产环境相同的结果?
标签: c# asp.net iis datetime-format