gpt4 book ai didi

python - 将 python 日期时间转换为时间戳并返回 UTC 仍使用本地时区

转载 作者:IT老高 更新时间:2023-10-28 22:01:28 25 4
gpt4 key购买 nike

我正在使用一个给我 utc 时间戳的代码,我想将它们转换为适当的日期时间。不幸的是,当我使用 pytz 测试简单案例时,日期时间增加了 6 小时(CST 与 UTC 的偏移量)。我需要保持时区数据正确,因为我也在计算其他时区之间的差异。任何想法为什么以及如何将 utc 时间戳转换为 utc 日期时间?

In [1]: import pytz

In [2]: from datetime import datetime

In [3]: import time

In [4]: datetime.fromtimestamp(time.mktime(datetime(7,1,1, tzinfo=pytz.UTC).timetuple()), tz=pytz.UTC)
Out[4]: datetime.datetime(2007, 1, 1, 6, 0, tzinfo=<UTC>)

In [5]: datetime.fromtimestamp(time.mktime(datetime(7,1,1).utctimetuple()), tz=pytz.UTC)
Out[5]: datetime.datetime(2007, 1, 1, 6, 0, tzinfo=<UTC>)

In [6]: datetime.fromtimestamp(time.mktime(datetime(7,1,1).utctimetuple()))
Out[6]: datetime.datetime(2007, 1, 1, 0, 0)

最佳答案

从“自纪元以来的秒数”时间戳中获取一个以 UTC 表示时间的简单日期时间对象:

from datetime import datetime

utc_dt = datetime.utcfromtimestamp(ts)

如果您想获取 UTC 时区的感知日期时间对象:

import pytz

aware_utc_dt = utc_dt.replace(tzinfo=pytz.utc)

将其转换为其他时区:

tz = pytz.timezone('America/Montreal')
dt = aware_utc_dt.astimezone(tz)

将时间戳直接转换为给定时区中的感知日期时间对象:

dt = datetime.fromtimestamp(ts, tz)

关于python - 将 python 日期时间转换为时间戳并返回 UTC 仍使用本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com