我想做一个简单的计算,但不知道如何使用c#为metro应用程序解决这个问题,因为TimeZoneInfo没有大部分功能用于其他类型的应用程序而不是地铁。
如何将当前机器时间转换为UTC时间?它可能很简单,现在变得复杂,我不明白。
试图使用
TimeZoneInfo time = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
服务器位于哪里,然后尝试将我的机器时间转换为该服务器,但由于我没有该功能,所以没有运气。我检查了那些WINRT的库,但我真的不喜欢那些。有没有更简单的方法? (请记住,目前的机器时间可能在澳大利亚,欧洲,美国。
也许我可以从本地得到utc的偏移量(但我如何得到中心的时间?)然后是中心的utc偏移量。我不确定它是否令人困惑。
答案 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)