挪威文化

时间:2015-09-08 15:53:41

标签: asp.net .net datetime cultureinfo currentuiculture

在我的web.config文件中,我有这一行:

<globalization culture="auto:en-GB" uiCulture="auto:en-GB" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="utf-8"/>

ASP.Net很好地处理所有日期/时间格式。在示例页面中应用以下代码...

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    txt.Text = New DateTime(2010, 1, 25).ToString()
End Sub

Protected Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
    Dim dt As DateTime = Convert.ToDateTime(txt.Text.Trim())
    Trace.Warn(dt.ToString())
End Sub

使用浏览器设置为英语(英国),我看到日期显示为

25/01/2010 00:00:00

按下按钮并将其转换回DateTime值,它可以完美地工作。

如果我将浏览器(Chrome)设置更改为挪威语Bokmal,并加载页面,我会看到:

25.01.2010 00.00.00

这又是正确的,,如果我提交表单,ASP.Net崩溃:

  

字符串未被识别为有效的DateTime。

     

第9行:Dim dt As DateTime = Convert.ToDateTime(txt.Text.Trim())

为什么会这样?当然,如果ASP.Net有基于文化设置的显示日期的意义,它应该能够读取它们吗?我已经尝试过英国英语和英语,并且都按预期工作,还有其他工作,因此它似乎与挪威语有某种联系。

1 个答案:

答案 0 :(得分:0)

使用Convert.ToDateTime(string, IFormatProvider)重载指定要使用的CultureInfo