在我的 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) 设置更改为挪威博克马尔,并加载页面,我会看到:
25.01.2010 00.00.00
这又是正确的,但是,如果我然后提交表单,ASP.Net 崩溃:
字符串未被识别为有效的日期时间。
第 9 行:Dim dt As DateTime = Convert.ToDateTime(txt.Text.Trim())
为什么会这样?当然,如果 ASP.Net 能够根据文化设置显示日期,它应该能够读取它们吗?我已经尝试过英语英国和英语美国,并且都按预期工作,加上其他人,所以它似乎在某种程度上与挪威语有关。