【发布时间】:2015-01-15 07:20:41
【问题描述】:
我的表单上有一个网格视图。我用相同的数据绑定它。有一个模板字段,我在下面提到。
<asp:TemplateField HeaderText="To">
<itemtemplate>
<asp:Label ID="Label2" runat="server"
Text='<%# Convert.ToDateTime(Eval("Leave_To")).ToString("dd/MM/yyyy") %>'></asp:Label>
</itemtemplate>
<headerstyle horizontalalign="Left" />
<itemstyle horizontalalign="Left" />
</asp:TemplateField>
我的问题是,当我在 Mozilla、Opera、Chrome 等上运行此表单时,它会显示日期格式(带有斜线)dd/mm/yyyy,但是当我使用 ie 10 运行它时,它会显示格式(带有连字符)@987654324 @。为什么?
有人可以帮忙吗?
【问题讨论】:
-
我不认为
DateTime的字符串表示可能会根据浏览器而改变。由于您没有提供任何IFormatProvider,它始终使用您的CurrentCulture设置。如果这种文化设置相同,那么这些格式也应该相同。您真的确定在相同的文化设置下运行此代码吗? -
@SonerGönül:同意你的观点,那为什么它只在 IE 10 中改变?
-
好吧,我建议您通过记录
CultureInfo.CurrentCulture来诊断此问题(或将其包含在测试页面的输出中)。 -
@JonSkeet:是的,肯定会包含它并检查。顺便说一句,我使用下面的代码将字符串转换为日期时间。
Date_To; DateTime.TryParseExact(lbl1.Text, "dd/MM/yyyy", new CultureInfo("en-US"), DateTimeStyles.None, out Date_From); -
在修复方面,您是否尝试过专门设置网站的日期文化 (msdn.microsoft.com/en-us/library/bz9tc508%28v=vs.140%29.aspx) 而不是使用默认文化?