首页 > 解决方案 > 将 ms 转换为 datetime 时应用时区

问题描述

将 ms 解析为 datetime 时是否可以应用时区?

我的解析正在工作,但它显示的是本地时间而不是带有时区的日期时间:

timestamp = datetime.fromtimestamp(float(dt) / 1000.0, 
                                   tz=pytz.timezone("America/Sao_Paulo"))

不确定它是否正在发生,因为我的操作系统的时区。

标签: python

解决方案


不知道问题是什么,它似乎按预期工作。我的当地时间是 09:02,而圣保罗时区显示为 10:02,这似乎是正确的。

>>> import datetime, time, pytz
>>> tz_1 = pytz.timezone("America/Sao_Paulo")
>>> tz_1
<DstTzInfo 'America/Sao_Paulo' LMT-1 day, 20:54:00 STD>
>>> now = time.time()
>>> now
1554382930.1575696

>>> datetime.datetime.fromtimestamp(now)
datetime.datetime(2019, 4, 4, 9, 2, 10, 157570)
>>> datetime.datetime.fromtimestamp(now, tz=tz_1)
datetime.datetime(2019, 4, 4, 10, 2, 10, 157570, tzinfo=<DstTzInfo 'America/Sao_Paulo' -03-1 day, 21:00:00 STD>)

您能否详细说明哪一部分没有按您的预期显示?


推荐阅读