【问题标题】:Why date format changes itself when change the browser?为什么更改浏览器时日期格式会自动更改?
【发布时间】: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) 而不是使用默认文化?

标签: c# asp.net date


【解决方案1】:

我现在无法对其进行测试,但我猜 IE 在请求中发送了“Accept-Language”标头,这与您当前的文化不同。因此,它覆盖了应用程序的当前文化(WebServer/IIS 文化)...

尝试在您的 Web.config 上进行设置:

 <configuration>
    <system.web>
       <globalization culture="en-GB" uiCulture="en-GB" />
    </system.web>
 </configuration>

在主键中设置您想要的文化。 (但文化“en-GB”已经提供了所需的日期格式)。

希望我能帮上忙……

【讨论】:

    【解决方案2】:

    如果您想覆盖文化以使格式始终为“dd/MM/yyyy”,则可以使用以下内容。

    Convert.ToDateTime(Eval("Leave_To")).ToString("dd/MM/yyyy", DateTimeFormatInfo.InvariantInfo)
    

    【讨论】:

      【解决方案3】:

      您似乎想强制分隔符为特定字符(即'/' 字符),而不是默认区域性提供的分隔符。这很容易通过将分隔符硬编码为日期格式字符串中的文字来完成,即:

      foo.ToString("dd'/'MM'/'yyyy")
      

      注意在'/' 分隔符周围添加的引号。

      【讨论】:

        猜你喜欢
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 2023-03-06
        • 2012-03-14
        • 2020-11-05
        • 1970-01-01
        相关资源
        最近更新 更多