如何从TimeZoneID中找到UTC偏移量?

时间:2013-12-13 19:49:36

标签: c# .net datetime timezone

我们使用以下内置的.net方法构建了一个时区下拉列表:“

foreach (TimeZoneInfo timeZone in timeZones)
        {
            SelectListItem li = new SelectListItem();
            li.Value = timeZone.Id;
            li.Text = timeZone.DisplayName;
            if (website.TimeZone == timeZone.Id)
            {
                li.Selected = true;
            }
            adminWebsiteVM.TimeZoneList.Add(li);        
        }

然后我们在数据库中存储timeZone.Id(这是一个字符串)。我选择存储ID而不是偏移,因为偏移随夏令时变化。

我的问题如何在以后使用timeZone.Id属性获取UTC偏移量?我看不到任何允许这样的事情的方法。

1 个答案:

答案 0 :(得分:3)

此方法的示例代码将执行您想要的所有操作。我可能会用一些简短的例子进行编辑,但我think the msdn就足够了。

基本上你可以使用:

 TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
 TimeSpan offset = timeZone.GetUtcOffset(DateTime time);