| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import logging
- from datetime import datetime
- logger = logging.getLogger(__name__)
- timezones = [
- {"offset": "-12:00", "value": "Etc/+12"},
- {"offset": "-11:00", "value": "Pacific/Pago_Pago"},
- {"offset": "-10:00", "value": "Pacific/Honolulu"},
- {"offset": "-09:00", "value": "America/Anchorage"},
- {"offset": "-08:00", "value": "America/Los_Angeles"},
- {"offset": "-07:00", "value": "America/Phoenix"},
- {"offset": "-06:00", "value": "America/Guatemala"},
- {"offset": "-05:00", "value": "America/Bogota"},
- {"offset": "-04:00", "value": "America/Halifax"},
- {"offset": "-03:30", "value": "America/St_Johns"},
- {"offset": "-03:00", "value": "America/Sao_Paulo"},
- {"offset": "-02:00", "value": "America/Godthab"},
- {"offset": "-01:00", "value": "Atlantic/Azores"},
- {"offset": "+00:00", "value": "Europe/London"},
- {"offset": "+01:00", "value": "Europe/Amsterdam"},
- {"offset": "+02:00", "value": "Asia/Amman"},
- {"offset": "+03:00", "value": "Asia/Baghdad"},
- {"offset": "+03:30", "value": "Asia/Tehran"},
- {"offset": "+04:00", "value": "Asia/Dubai"},
- {"offset": "+04:30", "value": "Asia/Kabul"},
- {"offset": "+05:00", "value": "Asia/Karachi"},
- {"offset": "+05:30", "value": "Asia/Kolkata"},
- {"offset": "+05:45", "value": "Asia/Kathmandu"},
- {"offset": "+06:00", "value": "Asia/Almaty"},
- {"offset": "+06:30", "value": "Asia/Yangon"},
- {"offset": "+07:00", "value": "Asia/Bangkok"},
- {"offset": "+08:00", "value": "Asia/Shanghai"},
- {"offset": "+09:00", "value": "Asia/Irkutsk"},
- {"offset": "+09:30", "value": "Australia/Adelaide"},
- {"offset": "+10:00", "value": "Australia/Brisbane"},
- {"offset": "+11:00", "value": "Asia/Magadan"},
- {"offset": "+12:00", "value": "Pacific/Auckland"},
- {"offset": "+13:00", "value": "Pacific/Tongatapu"},
- ]
- def get_current_timezone_info():
- current_tz = datetime.now().astimezone().tzinfo
- offset = current_tz.utcoffset(None)
- hours, remainder = divmod(offset.total_seconds(), 3600)
- minutes = remainder // 60
- sign = "+" if hours >= 0 else "-"
- current_offset = f"{sign}{abs(int(hours)):02d}:{abs(int(minutes)):02d}"
- current_timezone = next(
- (tz for tz in timezones if tz["offset"] == current_offset),
- {"offset": None, "value": None},
- )
- return current_timezone
|