python 中的 time.sleep(10) 在夏令时期间做什么?

What does time.sleep(10) in python do during daylight savings time?

如果在将时间调快一小时前还有 5 秒,time.sleep(10) 会睡 10 秒,还是五秒? (五秒后,时间距离开始还有十多秒)。

如果在将时间向后拨一小时之前还有 5 秒,time.sleep(10) 睡十秒,还是一小时零十秒? (当前时间距离开始时间超过十秒,至少需要一个小时)

为了完整起见,睡眠对闰秒有什么作用,就像我们刚才那样?

是否有任何时候 time.sleep 不会按要求执行?

我还在 python 2.7.

正如 time.sleep() document 所说:

Suspend execution of the current thread for the given number of seconds.

time.sleep() 与时区或您的系统时间无关。它在调用它时暂停当前线程的执行指定的秒数。

您的问题 "Are there any times that time.sleep would not be expected to do what is requested?" 的答案也可在 document:

中找到

The actual suspension time may be less than that requested because any caught signal will terminate the sleep() following execution of that signal’s catching routine.

但这在 version 3.5, and function sleeps at least secs even if the sleep is interrupted by a signal, except if the signal handler raises an exception (see PEP 475 中已更改为基本原理)。

注意:由于系统中其他activity的调度,暂停时间可能比请求的时间长任意长

time.sleep(10)不看'wall time';它在 'CPU time' 中计算 10 秒。 (这里有关于此准确性的讨论:How accurate is python's time.sleep()?

大多数计算机以秒或毫秒为单位跟踪时间,因为 "epoch," 通常是 1970 年 1 月 1 日 UTC。

将时区设置为 UTC 以外的其他时间实际上并不会更改系统时钟。系统时钟在 UTC 中继续 运行。相反,计算机只是记住您(用户)想要查看某个特定时区的时间,并在需要时将 UTC 系统时间转换为您首选的时区。

所以睡眠功能不会受到夏令时变化影响的原因是计算机计算相对于系统时钟的唤醒时间,系统时钟始终是 UTC。