我遇到了一个小问题。我正在解析Facebook用户数据,其中一个字段是时区,以数字表示:
timezone: 用户相对于UTC的时区偏移量
例如我所在地的时区为 'America/Argentina/Buenos_Aires'
,它的偏移量为-3。
现在,我该如何将这个数字转换为pytz.timezone
对象呢?
谢谢!
正如@Mark Ransom所说,在特定日期,多个pytz.timezone
可能具有相同的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
:https://labix.org/python-dateutil#head-8bf499d888b70bc300c6c8820dc123326197c00f - Mark E. Haase