Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET应用程序正在显示美国日期格式_Asp.net_Iis_Windows 7_Date Formatting - Fatal编程技术网

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