c# - C# DateTime 如何确定现在和今天的时间
问题描述
在互联网上找不到任何东西,也找不到关于此的文档。C# 从哪里得到它DateTime.Now
或DateTime.Today
从哪里得到它?这些是本地化的值。它是由Windows决定的吗?或者 IIS 会影响这个吗?我想知道究竟是什么将实际时间解析为 C# 以及什么会影响它。
为什么我想知道这个
我有一些奇怪的 API 行为,其中一些东西会提前几个小时返回。这很可能与时区有关。VPS 和客户端在同一个时区,所以我想知道什么会影响这种行为。
我正在努力...FromDate.Date <= DateTime.Today.Date
,出于某种原因,我有时会得到明天“来自”的记录。哪里2021-02-21 <= 2021-02-20
似乎是“真实的”。真正的意思,DateTime.Today
似乎是关闭。仅在晚上 10 点之后看到这种行为,在实际午夜前几个小时,这表明它与时区有关。
如果您对此行为有任何想法,请告诉我
解决方案
感谢@Matthew Watson 帮助我到达这里。
对于未来的任何人
DateTime.Now
是从系统接收的。首先它将获取UtcNow
然后应用本地偏移量(如果有的话)。
该DateTime.Today
物业刚刚返回DateTime.Now.Date
UtcNow 由内部外部方法接收GetSystemTimeWithLeapSecondsHandling
。我找不到实现。
查看源代码
推荐阅读
- r - 为 geom_point 创建标签
- python - Pytest 可以只实例化一个类对象来测试它的所有方法吗?
- javascript - 无法使用 JavaScript 模块将用户输入存储在会话存储中
- python - 坚持在 python 中编写正则表达式
- docker - 通过 docker 容器运行 Bot 模拟器
- android - 没有空格时换行右对齐视图
- ruby-on-rails - Rails Docker 因 Rack 2.0.6 的更新而中断
- android - CLJSRN 发布构建运行时失败
- java - 如果对象不存在,如何只允许创建它?
- javascript - 用反应删除数组中的元素,没有工作