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

时间:2017-01-01 21:22:48

标签: python python-2.7 dst

如果在将时间设定为一小时之前是5秒,那么time.sleep(10)会睡10秒还是5秒? (五秒后,从开始起的时间超过十秒)。

如果在将时间设定为一小时之前5秒钟,时间睡眠(10)睡眠十秒钟,或一小时十秒钟? (从开始时间起,当前时间需要多一个小时,至少按时钟计算)

为了完整起见,睡眠会为闰秒做些什么,就像我们刚才那样?

是否有任何时候没有预期time.sleep会按要求做什么?

我还在使用python 2.7。

3 个答案:

答案 0 :(得分:1)

正如time.sleep() document所说:

  

暂停执行当前线程达到给定的秒数。

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

回答你的问题"是否有任何时候time.sleep不会被要求做什么?" 也可以在{{3}中找到}:

  

实际暂停时间可能小于请求的时间,因为任何捕获的信号将在执行该信号的捕获程序后终止sleep()。

但是这在document中发生了变化,即使睡眠被信号中断,函数也会至少秒休眠,除非信号处理程序引发异常(参见{{3为了理由)。

注意: 由于系统中其他活动的安排,暂停时间可能比任意金额要求的时间长

答案 1 :(得分:1)

ax.XAxis.TickLength = [0,0]; 没有看到#wall;#time;&#39 ;;它在CPU时间内计算10秒钟。 (这里有关于此准确性的讨论:How accurate is python's time.sleep()?

答案 2 :(得分:1)

大多数计算机以“纪元”(通常是1970年1月1日UTC)的秒数或毫秒来跟踪时间。

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

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