【发布时间】:2015-12-01 17:41:04
【问题描述】:
我有一个 Webforms ASP.Net 4.5 应用程序,它没有在 web.config 或代码的其他地方指定文化或 uiculture 设置。我担心为来自不同国家/地区的用户正确格式化日期,即文化设置而不是 UICulture 设置。
问题:如果这个 ASP.Net 应用被英国、德国和美国的用户使用,那么在 asp:Label 控件中显示时是否会自动格式化日期值,或者开发者需要明确地进行这种格式化?
Label 控件是使用 ASP.Net Webforms 的数据绑定语法进行数据绑定的,如下面的代码 sn-ps 所示。例如,如果美国用户的订购日期为 2014 年 10 月 4 日,那么英国或德国用户的订单日期应显示为 2014 年 4 月 10 日。
HTML
<asp:Label id="lblOrderDate" runat="server" Text="<%# this.OrderDate %>"></asp:Label>
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
string orderId = this.txtOrderId.Text;
Order order = DAL.GetOrder( orderId );
this.OrderDate = order.OrderDate;
this.Page.DataBind();
}
public DateTime OrderDate { get;set; }
更新 1
我不确定是否需要在页面代码隐藏中包含以下代码来设置文化,还是由 ASP.Net 自动完成?我的猜测是 ASP.Net 会自动执行此操作,但不确定。
protected override void InitializeCulture()
{
string language = "en-us";
//Detect User's Language.
if (Request.UserLanguages != null)
{
//Set the Language.
language = Request.UserLanguages[0];
}
//Set the Culture.
Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
}
【问题讨论】:
标签: c# asp.net webforms date-formatting