Moh*_*mad 18 c# asp.net datetime visual-studio
我们使用DateTime.Now,但时间不等于我们的服务器时间!
当我运行我的项目时,这些是DateTime属性值:
DateTime.Now = {15/14/04 05:20:18 AM}
DateTime.UtcNow = {15/14/04 12:20:18 PM}
Run Code Online (Sandbox Code Playgroud)
但我目前的本地系统时间是:
15/14/04 04:50:18 AM
Run Code Online (Sandbox Code Playgroud)
我的时区是德黑兰(UTC + 03:30).
这是我第一次看到这种行为!为什么不DateTime.Now等于我的电脑时间?

确保你没有在代码中的某个地方操作时区,或者在System.Globalization.CultureInfo中玩.
尝试在System.Globalization.CultureInfo的所有源代码中搜索它可能是某个地方,也可能是时区被缓存在某处所以试图调用 System.Globalization.CultureInfo.CurrentCulture.ClearCachedData()之前DateTime.Now
您的时区是UTC +03:30,但由于夏令时它是+4:30.这意味着,当你的时钟确定时DateTime.UtcNow = {15/14/04 12:20:18 PM},它就04:50:18 AM在你的时区.
因此,您DateTime.Now不会确认机器的日期时间设置,使其返回的值与您的时钟不匹配.
至于为什么接受的答案可以解释为什么可以通过DateTime.Now使用TimeZoneInfo类来计算UTC的本地时间(使用时区和夏令时),但我不知道为什么这可能会失去同步.你永远不会回收你的应用程序池,永远不会关闭你的机器?;)
System.Globalization.CultureInfo.CurrentCulture.ClearCachedData()因为它打电话TimeZone.ResetTimeZone()和工作TimeZoneInfo.ClearCachedData().
| 归档时间: |
|
| 查看次数: |
8990 次 |
| 最近记录: |