我的一个开发应用程序今天开始显示美式格式的短日期,而我期待英式格式。
日期正在使用date.ToShortDateString()
我已经检查了我的区域设置、键盘设置、浏览器设置和 web.config。这些都设置为英语(英国)或未更改。我也重启了好几次。
同一应用程序的移动版本,从同一开发服务器和同一网站(不同的 Web 应用程序)运行正常。
环境:
- 视窗 7 64 位
- Visual Studio 2010 专业版
- IIS 7.5
还可以在哪些地方更改可能影响日期显示的区域设置?
我的一个开发应用程序今天开始显示美式格式的短日期,而我期待英式格式。
日期正在使用date.ToShortDateString()
我已经检查了我的区域设置、键盘设置、浏览器设置和 web.config。这些都设置为英语(英国)或未更改。我也重启了好几次。
同一应用程序的移动版本,从同一开发服务器和同一网站(不同的 Web 应用程序)运行正常。
环境:
还可以在哪些地方更改可能影响日期显示的区域设置?
Windows 区域设置不会影响任何网站,除非网站被编程为从浏览器首选语言获取区域设置并将其应用于 ASP 站点
使用globalization
选项中的web.config
<globalization culture="es-AR" uiCulture="es" />
或者
global.aspx
Application_BeginRequest
在方法中设置值
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim lang As String = "es"
If HttpContext.Current.Request.Path.Contains("/en/") Then
lang = "en"
ElseIf HttpContext.Current.Request.Path.Contains("/pt/") Then
lang = "pt"
ElseIf HttpContext.Current.Request.Path.Contains("/es/") Then
lang = "es"
End If
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang)
End Sub
来自 MSDN
当前 DateTime 对象的值使用与当前线程区域性关联的 DateTimeFormatInfo.ShortDatePattern 属性定义的模式进行格式化。返回值与使用 ToString(String) 方法指定“d”标准 DateTime 格式字符串所返回的值相同。
您是否尝试过更改当前线程的文化?这也可以按页面设置 - http://msdn.microsoft.com/en-us/library/bz9tc508%28v=vs.85%29.aspx。