C# DateTime 如何确定现在和今天时间

Roy*_*ris 0 c# datetime

在互联网上找不到任何内容,也找不到有关此的文档。DateTime.NowC#从哪里得到它DateTime.Today?这些是本地化值。是Windows决定的吗?或者 IIS 对此有影响吗?我想知道到底是什么将实时时间解析为 C# 以及什么会影响它。


为什么我想知道这个

我遇到了一些奇怪的 API 行为,其中有些内容提前了几个小时返回。这很可能与时区有关。VPS 和客户端位于同一时区,所以我想知道什么会影响这种行为。

我正在努力工作...FromDate.Date <= DateTime.Today.Date,由于某种原因,我有时会收到“来自”明天的记录。哪里2021-02-21 <= 2021-02-20看起来是“真实”的。真正的意思是,DateTime.Today似乎已经关闭了。仅在晚上 10 点左右(也就是实际午夜前的几个小时)左右看到此行为,这表明它与时区有关。

如果您对此行为有任何想法,请告诉我

Roy*_*ris 6

感谢@Matthew Watson 帮助我到达这里。

对于未来的任何人

是DateTime.Now从系统接收的。首先它将获得UtcNow然后应用本地偏移(如果有的话)。

参见源代码第1051行

房产DateTime.Today刚刚回归DateTime.Now.Date

参见源代码第1262行


UtcNow 由内部 extern 方法接收GetSystemTimeWithLeapSecondsHandling。我找不到它的实现。

查看源代码