gpt4 book ai didi

c# - .ToUniversalTime(),为什么会这样?

转载 作者:太空狗 更新时间:2023-10-29 20:27:36 26 4
gpt4 key购买 nike

我注意到这个关于 .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 月,夏令时尚未生效,偏移量现在为 -5。但正因为如此,当我将用户的时区偏移量 -5 调整为“7/10/2013 4:00:00 AM”时,它变为 7/09/2013 而不是 7/10/2013。

我该如何处理这种情况?

最佳答案

因为daylight savings .本地时间与时钟上显示的一样。 UTC 是连续的,没有间隙,没有模糊的时间点。

关于c# - .ToUniversalTime(),为什么会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21863394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com