Metro Apps TimeZoneInfo替代方案

时间:2014-10-08 06:16:52

标签: c# datetime microsoft-metro

我想做一个简单的计算,但不知道如何使用c#为metro应用程序解决这个问题,因为TimeZoneInfo没有大部分功能用于其他类型的应用程序而不是地铁。

如何将当前机器时间转换为UTC时间?它可能很简单,现在变得复杂,我不明白。

试图使用

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

服务器位于哪里,然后尝试将我的机器时间转换为该服务器,但由于我没有该功能,所以没有运气。我检查了那些WINRT的库,但我真的不喜欢那些。有没有更简单的方法? (请记住,目前的机器时间可能在澳大利亚,欧洲,美国。

也许我可以从本地得到utc的偏移量(但我如何得到中心的时间?)然后是中心的utc偏移量。我不确定它是否令人困惑。

1 个答案:

答案 0 :(得分: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)