2014-10-08 34 views
0

我想做一個簡單的計算,但不知道如何使用c#爲metro應用程序,因爲TimeZoneInfo沒有大部分的功能,它用於其他類型的應用程序,而不是地鐵。Metro Apps TimeZoneInfo替代

如何將當前機器時間轉換爲UTC時間?這可能很簡單,現在變得複雜了,我不明白。

試圖用

TimeZoneInfo time = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); 

這哪裏是服務器,然後嘗試我的機器時間轉換到這一點,但沒有運氣,因爲我沒有這個功能。我檢查了WINRT的某些庫,但我不太喜歡這些。有更容易的方法嗎? (請記住當前的機器時間可能在澳大利亞,歐洲,美國

也許我可以從本地獲得utc的偏移量(但是如何獲取中心的時間?),然後使用utc偏移量。中央我不知道它是混亂

+0

如何[DateTime.UtcNow](http://msdn.microsoft.com/en-us/library/system.datetime.utcnow(V = vs.110)的.aspx)? – Yuriy 2014-10-08 06:27:48

回答

0

你可以得到TimeZoneInfo.Local當地時區有什麼你不能是任意其他時區:。只有本地和UTC

TimeZoneInfo.BaseUtcOffset會給時區與UTC之間的時差。

TimeZoneInfo local = TimeZoneInfo.Local; 
TimeZoneInfo utc = TimeZoneInfo.Utc; 
Debug.WriteLine("Local TimeZone is {0} offset from UTC:{2}", local,utc,local.BaseUtcOffset); 

DateTime localTime = DateTime.Now; 
DateTime utcTime = DateTime.UtcNow; 
Debug.WriteLine("It is now {0} (UTC: {1})", localTime, utcTime); 

結果:

Local TimeZone is (UTC-08:00) Pacific Time (US & Canada) offset from UTC:-08:00:00 
It is now 10/09/2014 14:59:07 (UTC: 10/09/2014 21:59:07)