2013-12-13 17 views
0

我們已經建立了一個下拉使用時區的列表中選擇以下內置.NET方法:」如何從TimeZoneID中找到UTC偏移量?

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

你想實際顯示偏移,或者你只是想轉換到/自UTC?如果是後者,請查看'TimeZoneInfo.ConvertTimeToUtc()'和'TimeZoneInfo.ConvertTimeFromUtc()'。 –

+0

謝謝。我的服務器使用UTC。所以這些服務器不工作,因爲他們在服務器上工作我正在嘗試使用用戶的時區,我應該可以從時區偏移量中計算出時區。但是,由於時區偏移量的變化,我認爲按照需要獲取偏移量將是謹慎的。所以這就是我要找的。 –

回答

2

此方法的示例代碼將完成您想要的任何操作,我可能會通過簡短的考試進行編輯但我只需要think the msdn即可。

基本上,你可以使用:

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

謝謝。欣賞它! –

相關問題