python的time.time()方法如何工作?

far*_*der 5 time utc python-2.7

time.time()方法为您提供时间戳,该时间戳基本上是自纪元(以UTC为单位)以来经过的时间.

datetime.fromtimestamp()表示如果未提供tz参数,则返回本地日期时间对象.

我知道tz信息基本上被视为utc的偏移量以获得当地时间.

如果是这种情况,则必须从平台中提取utc中的当前时间.

从底层平台提取当天的当前时间,无论是本地还是UTC?

jfs*_*jfs 4

在(当前)CPython 中,time.time()调用
\nfloattime(NULL)调用
\ n_PyTime_gettimeofday_info()调用
\n \n 其中可能使用, ,pygettimeofday()
pygettimeofday()GetSystemTimeAsFileTime()clock_gettime(CLOCK_REALTIME)gettimeofday()函数,具体取决于平台。

\n\n
\n\n

无关:time.time()返回“自纪元以来的秒数”。在 Python 支持的大多数系统(Linux、OS X、Windows)上,这是 POSIX 时间。POSIX 时间戳不是自发生以来经过SI 秒数1970-01-01T00:00:00Z。尽管它非常接近(从 Epoch 算起在 0.000003% 以内)。它计算非闰 SI 秒数或 UT1(平均太阳)秒数。

\n\n

相对于 TAI、GPS 时标,UTC 不是线性时标(见图。由于闰秒,您将无法获得准确的经过的 SI 秒(UTC 保持在 UT1(地球自转)的 \xc2\xb10.9 秒内)。也可以看看,一天的长度是否始终为 86,400 纪元秒?

\n\n

某些操作系统可以配置为使用非 POSIX“正确”区域信息。time.time()在这种情况下不需要返回 POSIX 时间戳。“右”时区计算闰秒,因此“右”时间戳和 POSIX 时间戳之间的差异不是恒定的,例如,由于引入正闰秒,该差异将在 2015 年 7 月增加增加。

\n\n

原则上,“纪元”可能与 POSIX Epoch 不同,尽管Python 不支持此类系统

\n