c# – .ToUniversalTime(),为什么它以这种方式工作?
发布时间:2020-12-15 07:45:35 所属栏目:百科 来源:网络整理
导读:我注意到.ToUniversalTime()这个奇怪的问题,但我无法弄清楚原因. 如果我做 DateTime currentServerTime = System.DateTime.Now; DateTime currentUTCServerTime = currentServerTime.ToUniversalTime(); log.Debug("Current server time :" + currentServerT
我注意到.ToUniversalTime()这个奇怪的问题,但我无法弄清楚原因.
如果我做 DateTime currentServerTime = System.DateTime.Now; DateTime currentUTCServerTime = currentServerTime.ToUniversalTime(); log.Debug("Current server time :" + currentServerTime); log.Debug("Current Server UTC Time is :" + currentUTCServerTime); 结果 Current server time :2/18/2014 2:09:23 PM Current Server UTC Time is :2/18/2014 7:09:23 PM 相隔5个小时. 鉴于服务器位于美国东海岸,具有-5偏移量.那是对的. 现在,如果我这样做 String dateTimeString = "7/10/2013"; DateTime baseLined = Convert.ToDateTime(dateTimeString); DateTime convertedUTCTime = baseLined.ToUniversalTime(); log.Debug(dateTimeString + " is :"+baseLined); log.Debug(dateTimeString + " UTC time is :" + convertedUTCTime); 结果 7/10/2013 is : 7/10/2013 12:00:00 AM 7/10/2013 UTC time is: 7/10/2013 4:00:00 AM 相隔4小时. 为什么一个结果显示5小时差异而另一个显示4个???? 请帮忙. ===编辑==== 感谢Jon和Usr.现在我明白了.ToUniversalTime()会考虑服务器的DST,并根据它附加的DateTime对象调整UTC. 因此,我仍然试图围绕它解决这个问题. 在我的数据库中,7/10/2013是截止日期,并记录为“7/10/2013 4:00:00 AM”(因为在此期间,它是在夏令时期间,偏移-4). 现在是2014年2月,DST没有生效,抵消现在是-5.但正因为如此,当我将用户的时区偏移-5调整为“7/10/2013 4:00:00 AM”时,它将变为2013年7月7日而不是7/10/2013. 我该如何处理这种情况? 解决方法
由于
daylight savings.当地时间与您的时钟一样. UTC是连续的,没有间隙,没有模糊的时间点.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |