ASP.NET应用程序显示美国日期格式

时间:2012-11-15 16:36:55

标签: asp.net iis windows-7 date-formatting

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

使用date.ToShortDateString()

呈现日期

我已经检查了区域设置,键盘设置,浏览器设置和web.config。这些都设置为英语(英国)或未更改。我也重启了很多次。

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

环境:

  • Windows 7 64位
  • Visual Studio 2010 Professional
  • IIS 7.5

其他地方可以更改可能影响日期显示的区域设置吗?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

来自MSDN

  

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

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