我有一个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")) %>
但这不应该是必要的。谢谢你的帮助。
答案 0 :(得分:0)
您可以尝试将日期强制转换为您希望的格式,而不是使用{0:d}
并根据文化格式设置日期格式。例如:
<%# Eval("OrderDate", "{0:MM/dd/yyyy}") %>