Lim*_*ing 7 .net c# asp.net utc
我注意到.ToUniversalTime()这个奇怪的问题,但我无法弄清楚为什么.
如果我做
DateTime currentServerTime = System.DateTime.Now;
DateTime currentUTCServerTime = currentServerTime.ToUniversalTime();
log.Debug("Current server time :" + currentServerTime);
log.Debug("Current Server UTC Time is :" + currentUTCServerTime);
Run Code Online (Sandbox Code Playgroud)
结果
Current server time :2/18/2014 2:09:23 PM
Current Server UTC Time is :2/18/2014 7:09:23 PM
Run Code Online (Sandbox Code Playgroud)
相隔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);
Run Code Online (Sandbox Code Playgroud)
结果
7/10/2013 is : 7/10/2013 12:00:00 AM
7/10/2013 UTC time is: 7/10/2013 4:00:00 AM
Run Code Online (Sandbox Code Playgroud)
相隔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.
我该如何处理这种情况?
| 归档时间: |
|
| 查看次数: |
4174 次 |
| 最近记录: |