2

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

日期正在使用date.ToShortDateString()

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

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

环境:

  • 视窗 7 64 位
  • Visual Studio 2010 专业版
  • IIS 7.5

还可以在哪些地方更改可能影响日期显示的区域设置?

4

2 回答 2

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
于 2012-11-15T16:42:05.547 回答
1

来自 MSDN

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

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

于 2012-11-15T16:41:02.770 回答