【问题标题】:How does .Net get UTC?.Net 如何获得 UTC?
【发布时间】:2014-07-07 20:58:23
【问题描述】:

我正在考虑将我们应用程序的时间从本地时间切换到 UTC。但是,有人问它是如何计算 UTC 的,我自己也不知道。我进行了搜索,但在任何地方都没有看到答案。

它只是根据时区转换本地时间吗?

如果是这样,有没有什么方法可以说明时间已关闭且没有互联网连接的计算机? (我不认为,但我想我还是会问)。

【问题讨论】:

  • 安装操作系统时,操作系统会询问您的位置。这个系统时间偏移是它定义本地与 UTC 的方式
  • 因此,如果计算机上的时间关闭,UTC 也会关闭。我想,我只是想清楚一点。谢谢。
  • @EatATaco 是的。它不需要任何互联网连接。
  • 另外,我建议你切换到NodaTime。它会让你的生活更轻松。

标签: .net datetime time


【解决方案1】:

它如何计算 UTC

它根本不计算。恰恰相反,UTC 很简单,而且是本地时间,需要 Internet 连接才能准确跟踪夏令时转换规则。

本地时间完全不明确,无法可靠地运行操作系统。 Windows 的时钟在 UTC 上运行。例如,也用于磁盘上文件的各种时间戳,您的文件不会在 DST 转换中突然变旧一个小时。

所以DateTime.UtcNow 直接调用 GetSystemTimeAsFileTime() winapi 函数,根本不按摩返回值。这是 DateTime。现在这很难。显然你不想犹豫切换:)

【讨论】:

  • 澄清一下,只有在发生更改时才需要互联网连接(阅读,最简单的方法)来更新时区和 DST 规则。无需互联网连接即可将 UTC 计算为当地时间。
  • 太棒了,感谢您的详细回复。这很有意义,而且更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 2014-12-18
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多