【发布时间】:2021-12-19 03:33:32
【问题描述】:
我有一个从 MQTT 代理传播的时间字符串,我想读取它并将其从其本地时区(美国中部时间)转换为协调世界时 (UTC)。我目前在 Ubuntu 20.04 Focal Fossa 中使用 Python 3.8.5,机器时区设置为 UTC。
时间字符串如下:1636039288.815212
为了在 Python 中使用这个时间,我使用了 datetime 和 pytz 库的组合。我目前的核心代码如下:
from datetime import datetime, timedelta
import pytz
input = 1636039288.815212
srctime = datetime.fromtimestamp(input, tz=pytz.timezone('US/Central'))
运行此块后,我收到以下不需要的时间输出:
datetime.datetime(2021, 11, 4, 10, 21, 28, 815212, tzinfo=<DstTzInfo 'US/Central' CDT-1 day, 19:00:00 DST>)
似乎尽管在初始时间戳转换中明确定义了“美国/中部”,但随后提供的初始时间减去了 5 小时。
我可以采取哪些额外的步骤/更改来确保提供的初始时间保持不变,定义为美国/中部时间,并且我可以随后更改为 UTC?
【问题讨论】:
标签: python-3.x datetime timezone timezone-offset pytz