timezone:用户的时区偏离UTC
对我来说('America/Argentina/Buenos_Aires'
)它是-3。
现在,如何将该数字转换为pytz.timezone
?
谢谢!
答案 0 :(得分:5)
没有1:1的对应关系,所以没有做出一些必然无效的假设就无法做到。
您可以创建自己的tzinfo
类,直接对偏移进行编码,而不会尝试将其绑定到区域。
答案 1 :(得分:1)
作为@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']
# ...
答案 2 :(得分:-1)
您可以使用tzinfo.tzname获取区域名称。