使用 TimeZoneInfo.GetSystemTimeZones() 时获取 Windows 时区索引;

Ser*_*ril 5 c# asp.net timezone .net-4.0

所以我一直在努力解决的问题是在 .net 4 (C#) 中提取时区列表以填充表单上的下拉列表。我知道我可以这样做:

var TimeZoneList = TimeZoneInfo.GetSystemTimeZones();
Run Code Online (Sandbox Code Playgroud)

它将检索 TimeZoneInfo 类中具有“Id”属性的时区列表。不过,该 ID 不是 Microsoft 时区索引。

例如,对于东部时间,“Id”只是“东部标准时间”,而内部索引为“35”。(其余索引位于:http://msdn.microsoft.com/en-us/library/ms912391( v=winembedded.11).aspx )

是否有某种方法可以从 TimeZoneInfo.GetSystemTimeZones() 获取这些索引,或者是否有其他方法可以调用来查找这些索引?我知道我可以创建一个 switch case 或一堆 if 语句来检查每个 ID 并匹配索引值,但我认为必须有更好的方法。

谢谢!

Ste*_*ner 0

它有点过时,但2008 年 (.NET 3.5) 的 MSDN 论坛帖子表明不存在良好的映射,也许您应该创建一个从 TimeZoneInfo ID 到您指向的页面的时区 ID 的交叉引用表。