为什么我的ASP.Net日期格式变化不正常?

时间:2010-10-08 18:26:48

标签: asp.net webforms date-format

我有一个asp.net 4.0 Formview绑定到一个SqlDataSource,托管在IIS7上,我正在显示如下编辑日期:

<input id="OrderDateTextBox" type="text" value='<%# Eval("OrderDate", "{0:d}") %>' />

这通常按预期工作,但偶尔日期格式显示d / m / y而不是m / d / y。发生这种情况时,页面刷新将显示正确的日期格式。

到目前为止,我已尝试在web.config中设置默认文化,如下所示:

<globalization enableClientBasedCulture="false" culture="en-US" uiCulture="en-US" />

我也尝试在初始化时设置文化:

protected override void InitializeCulture()
{
    UICulture = "en-US";
    Culture = "en-US";
    Thread.CurrentThread.CurrentCulture =
        CultureInfo.CreateSpecificCulture("en-US");
    Thread.CurrentThread.CurrentUICulture =
        new CultureInfo("en-US");

    base.InitializeCulture();
}

这些方法似乎都没有任何效果。但是,如果我使用以下语法提取值,则日期格式始终是正确的:

<%# DateTime.Parse(Eval("OrderDate").ToString()).ToString("d", CultureInfo.CreateSpecificCulture("en-US")) %>

但这不应该是必要的。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试将日期强制转换为您希望的格式,而不是使用{0:d}并根据文化格式设置日期格式。例如:

<%# Eval("OrderDate", "{0:MM/dd/yyyy}") %>