解决方法
可能存在零个或多个(多个)时区,其对应于单个UTC偏移.要查找现在具有给定UTC偏移的这些时区:
#!/usr/bin/env python from datetime import datetime,timedelta import pytz # $pip install pytz utc_offset = timedelta(hours=5,minutes=30) # +5:30 Now = datetime.Now(pytz.utc) # current time print({tz.zone for tz in map(pytz.timezone,pytz.all_timezones_set) if Now.astimezone(tz).utcoffset() == utc_offset})
产量
set(['Asia/Colombo','Asia/Calcutta','Asia/Kolkata'])
如果您想要考虑历史数据(根据当前时区规则在某个日期具有/将具有给定utc偏移的时区):
#!/usr/bin/env python from datetime import datetime,minutes=30) # +5:30 names = set() Now = datetime.Now(pytz.utc) for tz in map(pytz.timezone,pytz.all_timezones_set): dt = Now.astimezone(tz) tzinfos = getattr(tz,'_tzinfos',[(dt.utcoffset(),dt.dst(),dt.tzname())]) if any(off == utc_offset for off,_,_ in tzinfos): names.add(tz.zone) print("\n".join(sorted(names)))
产量
Asia/Calcutta Asia/Colombo Asia/Dacca Asia/Dhaka Asia/Karachi Asia/Kathmandu Asia/Katmandu Asia/Kolkata Asia/Thimbu Asia/Thimphu
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。