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