在我的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有基于文化设置的显示日期的意义,它应该能够读取它们吗?我已经尝试过英国英语和英语,并且都按预期工作,还有其他工作,因此它似乎与挪威语有某种联系。