2012-03-27 72 views
4

所以我一直在努力的東西是在.net 4(C#)中拉出時區列表來填充表單上的下拉列表。我知道我可以這樣做:使用TimeZoneInfo.GetSystemTimeZones()時獲取Windows時區索引;

var TimeZoneList = TimeZoneInfo.GetSystemTimeZones(); 

它將檢索具有'Id'屬性的TimeZoneInfo類中的時區列表。雖然ID不是Microsoft時區索引。

例如,在東部時間,'Id'僅僅是'東部標準時間',其中內部指標是'35'。 (其餘的指數在這裏:http://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx

有沒有辦法從TimeZoneInfo.GetSystemTimeZones()獲取這些索引還是有一些其他方法可以調用來查找這些索引?我知道我可以製作一個switch case或一堆if語句來檢查每個ID並匹配一個索引值,但我認爲必須有更好的方法。

謝謝!

+0

爲什麼你需要知道,出於興趣?我建議只使用Id來識別時區(並再次檢索它),除非您需要與使用索引的某些內容進行互操作。 – 2012-03-27 19:46:20

+0

那麼我正在開發一個Web前端到現有的數據庫/應用程序,在數據表中存儲數字索引。重新設計數據庫/應用程序部分的工作方式,而不僅僅是製作廣泛的if語句會更加痛苦。 – Seril 2012-03-27 19:50:19

+0

而不是'if'語句,你當然可以使用字典...並可能從註冊表中填充它。 – 2012-03-27 19:54:39

回答

0

這有些過時,但this MSDN forum posting from 2008(.NET 3.5)建議不存在好的映射,也許您應該從指向的頁面創建一個從TimeZoneInfo ID到時區ID的交叉引用表。