Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么更改浏览器时日期格式会自动更改?_C#_Asp.net_Date - Fatal编程技术网

C# 为什么更改浏览器时日期格式会自动更改?

C# 为什么更改浏览器时日期格式会自动更改?,c#,asp.net,date,C#,Asp.net,Date,我的表格上有一个网格视图。我正在用相同的数据绑定它。有一个模板字段,我在下面提到过 <asp:TemplateField HeaderText="To"> <itemtemplate> <asp:Label ID="Label2" runat="server" Text='<%# Convert.ToDateTime(Eval("Leave_To")).ToString("dd/MM/yyyy") %>'><

我的表格上有一个网格视图。我正在用相同的数据绑定它。有一个模板字段,我在下面提到过

<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运行它时,它会显示格式(带连字符)
dd-mm-yyyy
。为什么?


有人能帮上忙吗?

如果要覆盖区域性,使格式始终为“dd/MM/yyyy”,则可以使用以下命令

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

我现在无法测试它,但我猜IE在请求中发送了一个“Accept Language”头,这与您当前的文化不同。因此,它正在覆盖应用程序的当前区域性(Web服务器/IIS的区域性)

尝试在Web.config上设置此选项:

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

在主密钥内设置所需的区域性。(但区域性“en GB”已经提供了所需的日期格式)


希望我帮助了…

看起来您希望强制分隔符为特定字符(即
'/'
字符),而不是默认区域性提供的字符。这可以通过将分隔符硬编码为日期格式字符串中的文字来轻松实现,即:

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

请注意,在
“/”分隔符字符周围添加了引号。

我认为
日期时间的字符串表示形式不会因浏览器而改变。由于您没有提供任何
IFormatProvider
,因此它始终使用您的
CurrentCulture
设置。如果此区域性设置相同,则这些格式也应相同。你真的确定在相同的区域设置下运行此代码吗?@SonerGönül:同意你的看法,那么为什么它只在IE 10中更改?我建议你通过记录
CultureInfo.CurrentCulture
(或将其包含在测试页面的输出中)来诊断此问题。@Jonsket:是的,我肯定会包含它并检查。顺便说一下,我正在使用下面的代码将字符串转换为datetime<代码>日期到;DateTime.TryParseExact(lbl1.Text,“dd/MM/yyyy”,新文化信息(“en-US”),DateTimeStyles.None,out-Date\u-From)
在修复方面,您是否尝试过专门为网站()设置日期区域性,而不是使用默认区域性?