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

how to use strtotime to convert time stamp into unixepoch timestamp

我有一个通过 S3

获得的日期时间字符串 2021-10-20 15:42:40+00:00
s3_object = s3_resource.Object("testunzipping", "DataPump_10000838.zip")
lastModified = s3_object.last_modified
lastModified = str(lastModified)

我需要将其转换为 unixepochtimestamp。我在阅读另一个 SO 答案后正在尝试这个

import datetime
time = datetime.datetime.strtotime(lastModified)

但是我得到这个错误:

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

我还能如何将 str 或 datetime 对象转换为 unixepochtimestamp?

使用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),如果解析正确,将给出 aware datetime。那么一切都很好。如果不是这种情况(未指定 UTC 偏移量或时区),您将得到天真的日期时间,Python 将其视为 本地时间 。因此,如果您调用 .timestamp(),它将首先 转换 为 UTC(因为 Unix 时间指的是 UTC)。