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

时间:2012-03-27 19:43:12

标签: c# asp.net .net-4.0 timezone

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

var TimeZoneList = TimeZoneInfo.GetSystemTimeZones();

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

例如,在东部时间,“Id”只是“东部标准时间”,内部指数为“35”。 (其余指数在这里:http://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx

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

谢谢!

1 个答案:

答案 0 :(得分:0)

它有点过时,但是this MSDN forum posting from 2008(.NET 3.5)表明不存在良好的映射,也许你应该从你指向的页面创建一个从TimeZoneInfo ID到时区ID的交叉引用表