2012-11-15 69 views
2

我的开发应用程序的一个今天开始显示美国格式的短日期,我期待英国格式。ASP.NET应用程序显示美国日期格式

的日期正在使用date.ToShortDateString()

我已经检查了我的区域设置,键盘设置,浏览器设置和web.config中呈现。这些全部设置为英语(英国)或不变。我也重新启动了很多次。

同一应用程序的移动版本,运行于同一开发服务器和同一网站(不同的Web应用程序)正常工作。

环境:

  • Windows 7的64位
  • 的Visual Studio 2010专业
  • IIS 7.5

还能在哪里区域设置进行更改可能影响日期的显示?

回答

4

Windows区域设置不会影响任何网站,除非该网站被编程为从浏览器首选语言获得的区域设置,并将其应用到ASP网站

使用在web.config

globalization选项
<globalization culture="es-AR" uiCulture="es" /> 

OR

在设定值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 
+0

这有效,但我认为这是解决症状,而不是原因。其他应用程序无需设置此值即可正确提取en-GB。 –

+0

@MarkCooper:它取决于服务器或应用程序池的默认配置 –

+0

所以这些是我正在寻找的设置。我的“服务器”是一个WIN7开发人员VM,因此这些设置是以区域和语言定义的。应用池文化在哪里定义? –

1

从MSDN

当前DateTime对象的值使用由与当前线程区域性关联的DateTimeFormatInfo.ShortDatePattern属性定义的图案格式化。返回值与通过使用ToString(String)方法指定“d”标准DateTime格式字符串返回的值相同。

您是否尝试过改变当前线程的文化?这也可以在每页基础上设置 - http://msdn.microsoft.com/en-us/library/bz9tc508%28v=vs.85%29.aspx

相关问题