如何使用strtotime将时间戳转换为unixepoch时间戳



我有一个日期时间字符串2021-10-20 15:42:40+00:00,我通过S3获得

s3_object = s3_resource.Object("testunzipping", "DataPump_10000838.zip")
lastModified = s3_object.last_modified
lastModified = str(lastModified)
在阅读了另一个SO答案后,我正在尝试这个
import datetime
time = datetime.datetime.strtotime(lastModified)

但是我得到这个错误:

"type object 'datetime.datetime' has no attribute 'strtotime'"

使用fromisoformat (Python 3.7+):

import datetime
lastModified = "2021-10-20 15:42:40+00:00"
ts = datetime.datetime.fromisoformat(lastModified).timestamp()
print(ts)
# 1634744560.0 # Unix time in seconds

使用strptime:

import datetime
lastModified = "2021-10-20 15:42:40+00:00"
ts = datetime.datetime.strptime(lastModified, "%Y-%m-%d %H:%M:%S%z").timestamp()
print(ts)
# 1634744560.0 # Unix time in seconds

注意:这里的输入有一个UTC偏移量(+00:00),如果解析正确,将给出感知日期时间。一切都好。如果不是这种情况(没有指定UTC偏移量或时区),您将最终得到朴素的datetime, Python将其视为本地时间。因此,如果调用.timestamp(),它将首先被转换为UTC(因为Unix时间指的是UTC)。

最新更新