c# - ASP.NET DateTime.Now 错误的时间

标签 c# asp.net datetime

我在调用 DateTime.Now 时得到了一个奇怪的结果 所以,我做了以下 .apsx 并在服务器上执行。

<%@ Import Namespace="System.Globalization.CultureInfo" %>

<%
    System.Globalization.CultureInfo.CurrentCulture.ClearCachedData() 
%>

<%= DateTime.UtcNow %>
<br>
<%= DateTime.Now %>
<br>
<%= TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now) %>
<br>
<%= DateTime.Now.IsDaylightSavingTime() %>
<br>
<%= TimeZone.CurrentTimeZone.StandardName %>
<br>
<%= TimeZone.CurrentTimeZone.DaylightName %>
<br>
<%= TimeZoneInfo.Local.Id %>

结果如下:

10/01/2018 13:32:58 
10/01/2018 10:32:58 
-02:00:00 
False 
E. South America Standard Time 
E. South America Daylight Time 
E. South America Standard Time

为什么 DateTime.Now 返回 -03:00:00 而不是 -02:00:00 时间? 为什么 IsDaylightSavingTime 返回 false,但它应该是 True?

最佳答案

尝试使用 DateTimeOffset.Now 而不是 DateTime.Now。它将正确报告与 UTC 的偏移量 (DateTimeOffset.Now.Offset)。

它不支持 DST,为此使用 TimeZoneInfo

您将不断遇到 DateTime 和任何与时区有关的问题。

关于c# - ASP.NET DateTime.Now 错误的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48120631/

相关文章:

c# - 计算字符串中笑脸出现的次数

c# - 如何识别我在哪个线程?

python - 合并年和周列以在 python 中创建日期时间和排序

c# - 上课做什么? (带问号的类)在 C# 泛型类型约束中是什么意思?

c# - CLR 中方法表的精确布局(4.0 版)

asp.net - 是否可以强制 <div> 没有滚动条

c# - 将属性作为参数传递

c# - 如何从代码隐藏返回字符串并显示在网页上?

c# - 如果一整年过去了,则运行代码

java - 如何在UTC区域中获取当前日期作为java 8中的long值