python - 将祖鲁时间字符串转换为 MST 日期时间对象

标签 python datetime iso8601

如何将此字符串转换为 MST 时区 datetime 对象?

>>> type(date_str)
<type 'str'>
>>> date_str
'2017-01-17T20:02:45.767Z'

最佳答案

这是一个 Python 3.9 选项,仅使用标准库:

from datetime import datetime
from zoneinfo import ZoneInfo

date_str = '2017-01-17T20:02:45.767Z'

# to datetime, UTC:
dt = datetime.fromisoformat(date_str.replace('Z', '+00:00'))

# to mountain standard time:
dt_mountain = dt.astimezone(ZoneInfo("America/Denver"))

print(dt_mountain.isoformat())
# 2017-01-17T13:02:45.767000-07:00

对于旧版本,使用 dateutil 的不同方法:

from datetime import datetime
import dateutil

date_str = '2017-01-17T20:02:45.767Z'

# to datetime, UTC:
dt = dateutil.parser.parse(date_str)

# to mountain standard time:
dt_mountain = dt.astimezone(dateutil.tz.gettz("America/Denver"))

print(dt_mountain.isoformat())
# 2017-01-17T13:02:45.767000-07:00

关于python - 将祖鲁时间字符串转换为 MST 日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726845/

相关文章:

c++ - 检测到 QT UTC linux 时钟偏差。您的构建可能不完整

ios - 如何在 iOS 上获取 ISO 8601 日期?

python - PyGame 中康威的生命游戏没有生成正确的模式

python - 在 Airflow 中从一台服务器到另一台服务器的文件传输

android - 如何防止用户更改系统日期/时间(在 Android 中)?

mysql - Joomla 2.5 组件 - 存储日期/时间,显示在不同的时区

excel - 在 Excel 中解析 ISO8601 日期/时间(包括时区)

python - 将 ISO 8601 数据的 Pandas 列转换为秒

python - 猜游戏错误?

python - 在python中调用外部命令并将值插入到命令中