运行python的计算机时钟(Windows或Linux)会发生什么
自动更改并拨打电话time.time()
?
我已经读过,当时钟手动更改为某个值时,time.time()
的值会更小。
答案 0 :(得分:2)
虽然此函数通常会返回非递减值,但它可以 如果系统时钟已经返回,则返回比先前调用更低的值 在这两个电话之间回过头来。
根据平台情况调整系统时钟的值。但是,根据评论,不应包含基于DST的更改,因为Python支持的所有操作系统都提供系统调用以检索UTC中的当前时间(而DST仅影响本地时间与UTC的关联方式) )。
如果这不是一个足够好的保证,你可能更喜欢time.montonic
,保证永远不会倒退 - 但是,请注意它附带了这个警告(并决定这是否对你的用例很重要) :
返回值的参考点未定义,因此仅限于此 连续调用结果之间的差异是有效的。
答案 1 :(得分:1)
time.time()
返回底层库返回的值。 Python使用time(..)
或gettimeofday(.., nullptr)
(取决于系统上可用的内容)。
https://github.com/python-git/python/blob/master/Modules/timemodule.c#L874
在这两种情况下都会返回UTC。 E.g:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html
time()函数应返回自Epoch
以来以秒为单位的时间值
在Matt的有效评论之后,我必须添加epoch的定义,该定义明确指出time
返回UTC时间。
<强>历元强>: 从历史上看,UNIX系统时间的起源被称为 &#34; 00:00:00 GMT,1970年1月1日&#34;。格林威治标准时间实际上不是一个 国际标准界承认的一词;因此, 这个术语,&#34; Epoch&#34;,用于缩写对实际的引用 标准,协调世界时。
为了证明这个时代是相同的检查:
import time
a = time.gmtime(secs=0)
# time.struct_time(tm_year=2015, tm_mon=9, tm_mday=9, tm_hour=1, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=252, tm_isdst=0)
b = time.localtime(secs=0)
# time.struct_time(tm_year=2015, tm_mon=9, tm_mday=9, tm_hour=3, tm_min=1, tm_sec=28, tm_wday=2, tm_yday=252, tm_isdst=1)
如果参数time.time()
为0,则两个函数都使用从secs
返回的值。在我的情况下,tm_isdst
对于localtime设置为true,对于gmtime设置为false(表示自纪元以来的时间。)
编辑:您在哪里读到该值会更小?