我的机器处于 PDT,如果我说 DateTime.Now,那么我将获得相当于 2012 年 9 月 18 日上午 6:00:00 的当地时间。我想获得此日期时间实例的 UTC 等效值。 UTC 时间将比 PDT 早 7 小时,比 PST 早 8 小时。我想自动考虑夏令时。
我知道如何做到这一点吗?
您可以使用
var now = DateTime.UtcNow;
要转换现有的日期时间,假设它有时区信息, 您可以使用DateTime.ToUniversalTime() http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx。如果您使用例如获取 DateTime 实例
var localNow = DateTime.Now; // Has timezone info
它将有时区信息。如果您创建它,例如使用滴答计数,除非您明确提供,否则它不会包含时区信息。
var unspecifiedNow = new DateTime(someTickCount); // No timezone info
值得一提的是,.NET 中的时区处理并不是最佳的。您可能想看看野田时间 http://code.google.com/p/noda-time/(一个项目由乔恩·斯基特 https://stackoverflow.com/users/22656/jon-skeet)如果您需要做任何涉及时区的复杂事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)