如何在ASP.NET数据中将TimeZoneInfo设置为DropDownList到用户的时区?

时间:2010-10-15 16:09:04

标签: asp.net drop-down-menu timezone

我有一个使用GoDaddy托管的网络应用程序(因此网络服务器位于亚利桑那州 - 山区时间)。我的用户大多在中央时区,但我可以从其他时区获得一些。

我有一个带有数据绑定dropDownList的网页,使用TimeZoneInfo,我想将此dropDownList的选定值设置为用户所在的任何时间区域。这是我目前的代码:

protected void Page_Load(object sender, EventArgs e)
{
    DropDownListTimeZone.DataSource = TimeZoneInfo.GetSystemTimeZones();
    DropDownListTimeZone.DataBind();

    TimeZoneInfo cst = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
    DropDownListTimeZone.SelectedValue = cst.DisplayName;
}

没关系,但我希望那些不在CST的用户更聪明。我希望有一些方法可以从Page.Request这样的东西中获取用户的TimeZoneInfo。但我无法弄清楚。

有一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我认为这需要一些javascript;因为它在用户的浏览器上运行,它可以选择计算机设置的任何时区,并相应地在下拉列表中设置所选项目。

http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/

答案 1 :(得分:0)

  

我希望有一些方法可以从Page.Request

这样的东西中获取用户的TimeZoneInfo。

没有。您可以使用JavaScript从客户端猜测 - 请参阅this question - 但这只是猜测。

没有界面可以从浏览器获取明确的客户端时区信息。因此,您肯定希望使用JS猜测作为默认值来提供用户选择的设置。