2013-03-22 59 views
2

在Silverlight應用程序中,如果我知道時區標識,那麼如何獲取當前時區或當前時間的UTC偏移?如何在Silverlight中的其他時區獲取本地時間

如果我在東海岸,並且想知道當前UTC時間或亞利桑那州當前時間,我如何在Silverlight中執行此操作?

這是不可用在Silverlight:

var AZTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(SomeDatetime, "US Mountain Standard Time"); 
+0

您是否嘗試過'DateTime.UtcNow'這裏還有一個很好的例子,您可以嘗試它也檢查'夏令時'http://www.c-sharpcorner.com/UploadFile/mahesh/TimeZoneSample12142005103321AM/TimeZoneSample。 aspx – MethodMan 2013-03-22 17:51:28

+0

顯然,Silverlight TimeZoneInfo只支持兩個預定義的時區,[Local](http://msdn.microsoft.com/en-us/library/system.timezoneinfo.local(v = vs.95).aspx)和[ UTC](http://msdn.microsoft.com/en-us/library/system.timezoneinfo.utc(v = VS.95)的.aspx)。 .NET TimeZoneInfo的[Id](http://msdn.microsoft.com/en-us/library/system.timezoneinfo.id.aspx)屬性沒有任何內容。據我瞭解,它根本無法處理其他時區。 – Clemens 2013-03-22 18:09:29

+0

您可能想要取消我的答案,讓我刪除它,這似乎是錯誤的(我沒有真正幫助你,是嗎?)。 – John 2014-01-09 16:17:16

回答

0

編輯:我似乎已經犯了一個錯誤,下面的答案是WPF。我不知道有什麼方法可以解決Silverlight中的問題,我無法刪除這個答案。

這個工作對我來說:

TimeZoneInfo GermanTimeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); 
var dateTimeInBerlin = TimeZoneInfo.ConvertTimeFromUtc(utc, GermanTimeZone); 

區名在Windows註冊表中設置的時間:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 
+2

雖然不在Silverlight中... – marcslogic 2014-01-08 11:47:09

+1

@marcslogic你看起來是對的。 – John 2014-01-08 13:43:56

+0

@marcslogic奇怪,我無法刪除答案,因爲它被接受... – John 2014-01-08 13:44:57

1

,您可以撥打服務爲Silverlight的應用程序,並沒有任何的轉換因爲服務器的.Net代碼具有所有時區功能。然後只需要Silverlight客戶端在需要轉換時調用該服務。

相關問題