我们使用以下内置的.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偏移量?我看不到任何允许这样的事情的方法。
答案 0 :(得分:3)
此方法的示例代码将执行您想要的所有操作。我可能会用一些简短的例子进行编辑,但我think the msdn就足够了。
基本上你可以使用:
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
TimeSpan offset = timeZone.GetUtcOffset(DateTime time);