Python 如何根据UTC偏移选择时区?

Python 如何根据UTC偏移选择时区?,python,datetime,timezone,pytz,Python,Datetime,Timezone,Pytz,我有一个愚蠢的问题。我正在解析Facebook用户数据,我得到的时区是一个数字: 时区:用户相对于UTC的时区偏移量 对我来说(“美国/阿根廷/布宜诺斯艾利斯”)是-3 现在,我如何将该数字转换为pytz.timezone 谢谢大家! 您可以使用来获取区域名称。没有1:1的对应关系,因此,如果不做出一些必然无效的假设,就无法进行此操作 您可以创建自己的类,直接对偏移量进行编码,而无需将其绑定到区域。因为,多个pytz。时区在给定日期可能具有相同的UTC偏移量。您可以打印特定日期的映射: #!/u

我有一个愚蠢的问题。我正在解析Facebook用户数据,我得到的时区是一个数字:

时区:用户相对于UTC的时区偏移量

对我来说(
“美国/阿根廷/布宜诺斯艾利斯”
)是-3

现在,我如何将该数字转换为
pytz.timezone


谢谢大家!

您可以使用来获取区域名称。

没有1:1的对应关系,因此,如果不做出一些必然无效的假设,就无法进行此操作

您可以创建自己的类,直接对偏移量进行编码,而无需将其绑定到区域。

因为,多个
pytz。时区在给定日期可能具有相同的UTC偏移量。您可以打印特定日期的映射:

#!/usr/bin/env python
from collections import defaultdict
from datetime import datetime

import pytz # $ pip install pytz

dt = datetime.now(pytz.utc) # current time in UTC
zone_names = defaultdict(list)
for tz in pytz.common_timezones:
    zone_names[dt.astimezone(pytz.timezone(tz)).utcoffset()].append(tz)

for offset, zone in sorted(zone_names.items()):
    print("%.1f %s" % (offset.total_seconds() / 3600, zone))
# -> -11.0 ['Pacific/Midway', 'Pacific/Niue', 'Pacific/Pago_Pago']
# ...

但是我需要有一个时区。作为子类化
tzinfo
的替代方法,您可以使用
dateutil.tz.tzoffset