ASP.NET应用程序正在显示美国日期格式
我的一个开发应用程序今天开始显示美式格式的短日期,而我期望的是英式格式 使用ASP.NET应用程序正在显示美国日期格式,asp.net,iis,windows-7,date-formatting,Asp.net,Iis,Windows 7,Date Formatting,我的一个开发应用程序今天开始显示美式格式的短日期,而我期望的是英式格式 使用date.toSortDateString()呈现日期 我已经检查了我的区域设置、键盘设置、浏览器设置和web.config。这些都设置为英语(英国)或未更改。我也重新启动了很多次 同一应用程序的移动版本,运行于同一开发服务器和同一网站(不同的web应用程序),工作正常 环境: Windows 7 64位 VisualStudio2010专业版 IIS 7.5 还有哪些地方可以更改可能影响日期显示的区域设置?来自MS
date.toSortDateString()呈现日期
我已经检查了我的区域设置、键盘设置、浏览器设置和web.config。这些都设置为英语(英国)或未更改。我也重新启动了很多次
同一应用程序的移动版本,运行于同一开发服务器和同一网站(不同的web应用程序),工作正常
环境:
- Windows 7 64位
- VisualStudio2010专业版
- IIS 7.5
还有哪些地方可以更改可能影响日期显示的区域设置?来自MSDN
使用与当前线程区域性关联的DateTimeFormatInfo.ShortDatePattern属性定义的模式格式化当前DateTime对象的值。返回值与通过使用ToString(string)方法指定“d”标准日期时间格式字符串返回的值相同
您是否尝试过更改当前线程的区域性?这也可以基于每页进行设置-。windows区域设置不会影响任何网站,除非网站编程为从浏览器首选语言获取区域设置并将其应用于ASP网站
使用web.config
<globalization culture="es-AR" uiCulture="es" />
这已经奏效了,但我认为这是在纠正症状,而不是原因。其他应用程序在没有设置此值的情况下正确地拾取了en GB。@MarkCooper:这取决于服务器或应用程序池的默认配置,所以这些是我要查找的设置。我的“服务器”是一个WIN7开发者虚拟机,所以这些设置是用区域和语言定义的。哪里定义了应用程序池区域性?如果未指定任何应用程序池区域性(使用美国格式),IIS将获得不变区域性,但可能您(或其他人)正在使用Cassini o IIS Express作为web服务器
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