Windows UTC 时间是不是独立于夏令时?

Posted

技术标签:

【中文标题】Windows UTC 时间是不是独立于夏令时?【英文标题】:Is Windows UTC time Daylight-saving independent?Windows UTC 时间是否独立于夏令时? 【发布时间】:2012-12-03 13:34:43 【问题描述】:

我使用GetSystemTime API 从 Windows 服务应用程序获取当前 UTC 时间以在内部使用。但是我很好奇,那个API夏令时返回的时间是独立的吗?

PS。让我解释一下我的意思。比如说,我调用 GetSystemTime,它在夏令时应该在凌晨 2 点生效的那一天返回 01:59:00 AM。然后我在 2 分钟后再次调用此 API(在夏令时更改之后)。第二个结果会与第一个结果相隔 2 分钟,还是会在其中反映夏令时更改?

【问题讨论】:

UTC 的整个点不受当地时区和 DST 的影响... 是的,但是 Windows GetSystemTime API 调用是否在 DST 转换中返回正确的 UTC 时间? Windows(与 Unix 不同)将 Bios 时钟设置为本地时间,而不是 UTC。由于转换时缺少/重复时间,本地时间无法明确转换为 UTC,我看不到 GetSystemTime 调用如何工作。有人对此有任何见解吗? 【参考方案1】:

UTC 是...UTC

夏令时 UTC 不随季节变化而变化,但 如果时区管辖区,当地时间或民用时间可能会改变 遵守夏令时(夏令时)。例如,UTC 是五 比东部当地时间早几个小时(即当天晚) 冬季在美国海岸,但提前四个小时 那里有夏令时。

您的本地时间是一个偏移量,而夏令时(这是一种本地现象)只会改变偏移量

【讨论】:

【参考方案2】:

UTC 中没有夏令时。

但是,偶尔会有闰秒。最后一个闰秒是在 2012 年 6 月 30 日 23:59:60 UTC 添加的。当天结束时间从 23:59:59 到 23:59:60,然后到 2012 年 7 月 31 日 00:00:00。

如果您想要闰秒空闲时间标准,请使用诸如 Atomic Time 之类的内容。

【讨论】:

哇,你是说UTC时钟可以有第60秒......很有趣。 很少。下一个闰秒可能要到 2016 年左右。 UTC 的运行速度与 TAI(国际原子时间)完全相同。 (首字母缩略词 TAI 和 UTC 向后看,因为官方名称是法语。)这里有一个问题:我们希望午夜是午夜。问题是地球的自转速度正在缓慢减慢,因为它将角动量转移到月球的轨道上。现在,一个地球日的长度已超过 86,400 秒。在 1800 年左右,每天有 86,400 秒。现在一天大约有 86,400.002 秒。 所以我现在想知道,如何在 Windows 操作系统中实现 UTC 时间接近该约定?我也应该停止假设合法时间检查是bool bTimeValid = tm.seconds >= 0 && ti.seconds <= 59; 微软的文档说秒在 0 到 59 之间。换句话说,它不做闰秒。假设您的计算机在闰秒发生之前与 UTC 完美同步。 (这是一个错误的假设。您的计算机时钟总是至少偏移一点点。)当闰秒确实发生时,您的计算机时钟和 UTC 的实际值现在将偏移一秒。没什么大不了;几乎没有人注意到一秒钟的偏移。下次计算机使用网络时间协议重新同步其时钟时,这一秒偏移将消失。

以上是关于Windows UTC 时间是不是独立于夏令时?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检查它是不是是 UTC 的 DST(夏令时)?

Windows 上“GTB 标准时间”的夏令时转换开始时间测试失败

英国伦敦时区是UTC+几?(windows 7小工具设置)

utc时间21是北京时间多少

夏令时和 UTC 时间

在python中将具有时区缩写的非UTC时间字符串转换为UTC时间,同时考虑夏令时