2012-11-15 70 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

相關問題