- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我注意到这个关于 .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/
这个问题在这里已经有了答案: What is this about adjustment rules when converting DateTime to UTC? (1 个回答) 关闭 7 年前
我注意到这个关于 .ToUniversalTime() 的奇怪问题,但我不明白为什么。 如果我这样做 DateTime currentServerTime = System.DateTime.Now
如何从标准 DateTime 格式转换为 UTC? 更具体地说,如果我在一个时区创建一个 DateTime 对象,然后切换到另一个时区并在其上运行 ToUniversalTime(),它如何知道转换是
例如,当您使用(Get-Date)cmdlet时,将得到一种不错的格式,例如下面的代码。但是,如果您使用ToString(),则会以一种格式获取它,例如6/22/2019 2:25:34 PM 如何将
所以我不确定使用哪一个,因为我对两者的理解都有限。我遇到的问题是我想根据用户在他们的机器上将时钟设置为哪个时区来显示时间。例如,如果用户将他们的机器设置为 EST 但在加利福尼亚,我希望时间以 EST
为什么年份显示为 2555? 该网站的文化是泰国的 最佳答案 是 - 任何时候将 DateTime 转换为未指定明确文化的字符串,它将使用当前文化的日历系统。但是,DateTime 组件本身仍然反射(
我在 .NET 的 DateTime 处理中遇到了可能是闰年的情况,特别是 ToLocalTime()。这是重现问题的一些代码(我在太平洋时区): DateTime dtStartLocal = Da
如果夏令时有效,并且日期对象已保存到数据库(UTC 格式)中,您检索该对象以在 View 中显示它(例如 asp.net-mvc). 您可以使用以下方法来做到这一点: public static Da
我刚刚开始认真考虑推出一个网络应用程序,该应用程序需要在用户一天开始时(比如早上 6 点)为用户做一些事情。也在他们的日子结束时。 我到处都读到人们说了很多只是为了使用 .ToUniversalTim
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
对我来说,它们是一样的。 UtcNow 只是一个捷径吗? 最佳答案 其实恰恰相反。 Now 属性实现为: public static DateTime Now { get { return
我有一个简单的控制台应用程序在Azure中作为连续Web作业运行,在本地调试时,当我使用转换时间时,它会给出正确的UTC输出时间 new DateTime(Time).ToUniversalTime(
我有一个简单的控制台应用程序在Azure中作为连续Web作业运行,在本地调试时,当我使用转换时间时,它会给出正确的UTC输出时间 new DateTime(Time).ToUniversalTime(
我是一名优秀的程序员,十分优秀!