我有一个愚蠢的问题。我解析Facebook的用户数据,我也得到了时区数字:如何根据UTC偏移量选择时区?
时区:用户的时区从UTC
抵消对我来说('America/Argentina/Buenos_Aires'
)是-3。
现在,我怎么可以转换数字为pytz.timezone
?
谢谢!
我有一个愚蠢的问题。我解析Facebook的用户数据,我也得到了时区数字:如何根据UTC偏移量选择时区?
时区:用户的时区从UTC
抵消对我来说('America/Argentina/Buenos_Aires'
)是-3。
现在,我怎么可以转换数字为pytz.timezone
?
谢谢!
您可以使用tzinfo.tzname获得的区域名称。
这里没有一个1:1点的对应关系,所以没有办法做到这一点而不进行一些假设必然是无效的。
您可以创建自己的tzinfo
类编码直接偏移没有试图把它回区。
作为'tzinfo'子类别的替代方法,您可以使用''dateutil.tz.tzoffset'':https://labix.org/python-dateutil#head-8bf499d888b70bc300c6c8820dc123326197c00f – 2017-08-19 16:14:55
作为@Mark Ransom said,多发性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']
# ...
但我需要有一个时区。 – santiagobasulto 2012-07-25 19:43:16