python - 如何使用 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)
我需要将其转换为 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),如果解析正确,它将给出感知 datetime。那一切都好。如果不是这种情况(未指定 UTC 偏移量或时区),您将得到天真的 datetime,Python 将其视为local time。因此,如果您调用.timestamp()
,它将首先转换为 UTC(因为 Unix 时间是指 UTC)。
推荐阅读
- docker - 詹金斯 + Kubernetes + Docker
- react-native - 如何在 flatlist react-native 中呈现按钮?
- c# - 从列表与对象绑定
- spring - 如何配置 Spring Boot 应用程序在 Eclipse STS 中运行
- java - 如何在 node-red 中导入自定义 jar
- sql - 在表之间“同步”或复制
- webstorm - 使用 webstorm 调试一个 react native / expo 应用程序
- regex - 正则表达式中对 unicode 的更正
- google-workspace - 将 Android Management API 与标准 GSuite EMM 提供程序一起使用(Google 移动管理)
- javascript - 如何在 iOS 设备 (Safari) 中去抖动或限制滚动事件