Python - time.time() 和 datetime.datetime.utcnow().timestamp() 返回不同的时代

dan*_*v91 7 python datetime utc

这实际上是两个问题:第一,无论时区如何,所有机器上的纪元(Unix)时间戳是否都相同(假设它们的系统时钟是正确的)?

我问是因为我已将代码部署到 AWS Lambda,该代码使用 datetime 模块生成纪元时间戳。当我们提取数据时,我试图转换为本地时间字符串(也使用日期时间),结果与预期的时间相差 2 小时。然后我开始测试以下代码:

import datetime
import time

print(time.time()) #1
print(datetime.datetime.utcnow().timestamp()) #2

print#1: 1554747526.775873
print#2: 1554783526.775873
Run Code Online (Sandbox Code Playgroud)

在我的本地机器上运行,它们相差两个小时。我将上述代码部署到 AWS Lambda,它们返回相同的值。在我的机器上有什么不同?下面的屏幕截图显示了在 AWS Lambda(左)和我的本地机器上运行的相同代码。我的系统时钟是正确的。

time.time() 与 datetime.utcnow().timestamp()

Alb*_*nto 6

原因与您计算机的时区有关。该库time使用您计算机中设置的时区,但就库而言,datetime您正在使用UTC时区。为了获取同一时区的时间戳,请使用datetime.datetime.now().timestamp()