C# 将UTC日期时间转换为UTC时间时会发生什么情况?
将UTC日期时间转换为UTC时间时会发生什么情况C# 将UTC日期时间转换为UTC时间时会发生什么情况?,c#,.net,C#,.net,将UTC日期时间转换为UTC时间时会发生什么情况 DateTime localDate = DateTime.Now.AddMinute(offsetTimeZone); DateTime todayStart = localDate.Date.ToUniversalTime().AddHours(00).AddMinutes(00); 在使用ToUniversalTime进行转换时,会发生很多事情。DST地址、当地时间等 只需转到参考源并通读
DateTime localDate = DateTime.Now.AddMinute(offsetTimeZone);
DateTime todayStart = localDate.Date.ToUniversalTime().AddHours(00).AddMinutes(00);
在使用ToUniversalTime进行转换时,会发生很多事情。DST地址、当地时间等 只需转到参考源并通读代码:
关于stackoverflow,已经有同样的问题了 这里没有附加到DateTime对象的隐式时区。如果在其上运行ToUniversalTime(),它将使用代码运行所在上下文的时区 例如,如果我从1970年1月1日创建了一个DateTime,那么无论我在世界的哪个地方,它都会给我相同的DateTime对象 如果在格林威治运行代码时对其运行ToUniversalTime(),则得到相同的时间。如果我在温哥华居住时这样做,那么我会得到一个-8小时的偏移日期时间对象 这就是为什么当您需要进行任何类型的日期转换或本地化时,将与时间相关的信息存储在数据库中作为UTC时间非常重要。考虑你的代码库是否移动到另一个时区的服务器设施;p>
您可以找到问题和完整答案。默认情况下,DateTime对象的类型为DateTimeKind.Local。在解析日期并将其设置为DateTimeKind.Utc时,ToUniversalTime()不执行转换。如果我们运行ToUniversalTime(),它将使用代码正在运行的上下文的时区。您不能自己调试吗?此外,文档可能有助于。。。