python - 我从本地时间转换为 UTC 有什么问题

标签 python python-3.x pytz

根据 timeanddate.com,目前芝加哥比 UTC 晚 5 小时。但是,我的 Python 应用程序有不同的想法:

import datetime
import pytz

    local_tz = pytz.timezone('America/Chicago')
    local_time = datetime.datetime(2015, 8, 6, 0, 0, tzinfo=local_tz)
    utc_time = local_time.astimezone(pytz.utc)
    print(local_time)
    print(utc_time)

2015-08-06 00:00:00-05:51
2015-08-06 05:51:00+00:00

“美国/芝加哥”和“美国/中部”得到的结果相同。为什么偏移量是 -05:51 而不是 -05:00?

最佳答案

pytz timezone objects 需要在使用前用特定时间初始化,并使用 tzinfo= 参数创建 datetime不允许这样做。您必须使用 pytz 对象的 localize 方法将时区添加到 datetime

>>> local_tz = pytz.timezone('America/Chicago')
>>> local_time = local_tz.localize(datetime.datetime(2015, 8, 6, 0, 0))
>>> print local_time
2015-08-06 00:00:00-05:00
>>> utc_time = local_time.astimezone(pytz.utc)
>>> print utc_time
2015-08-06 05:00:00+00:00

关于python - 我从本地时间转换为 UTC 有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31864684/

相关文章:

python-3.x - python 3.5+ 中 pycurl 的异步替代方案

python - 使用 Python 找出当前是否处于夏令时的时区

python - TZ 数据库和多个美国时区

python - 如何防止堆栈对索引进行排序?

python - 如何将 multiprocessor.manager.list 转换为纯 python 列表

python - 使用字典从列表中获取键和值

python - 使用 if 语句增加理解变量?

java - 如何使用 Jython 编写 Java 程序脚本

python-3.x - Python3如何实现十六进制长除法?

python - 如何在 Pandas 数据框中设置时间戳的偏移量?