Учитывая аббревиатуру часового пояса, есть ли способ получить список возможных< /em> часовые пояса?
Например, IST
может означать одно из следующего:
- Азия/Калькутта (Индия)
- Азия/Тель-Авив (Израиль)
- Европа/Дублин (Ирландия)
Я искал способ получить ['Asia/Kolkata', 'Asia/Tel_Aviv', 'Europe/Dublin']
в качестве вывода, когда 'IST'
задается в качестве ввода.
Я надеялся, что найдется способ использовать стандартные модули. Можно ли это сделать с помощью нового модуля zoneinfo
?
Вдохновленный этим ответом, я сделал
from datetime import datetime as dt
import zoneinfo
s = zoneinfo.available_timezones()
d = dict()
for tz in s:
t = z.ZoneInfo(tz).tzname(dt.utcnow())
if t not in d:
d[t] = [tz]
else:
d[t].append(tz)
Но это дает «PDT» как
'PDT': ['America/Ensenada',
'America/Santa_Isabel',
'Mexico/BajaNorte',
'US/Pacific-New',
'US/Pacific',
'America/Vancouver',
'PST8PDT',
'America/Tijuana',
'America/Los_Angeles',
и "PST" как раз
'PST': ['Asia/Manila'],
Но разве «Америка/Лос-Анджелес» в какой-то момент не попадет под «PST» (не сейчас, а позже).
Я явно что-то упустил, но не мог понять, что это такое..
Can there be a way to get the list of possible timezones from a time zone abbreviation?
datetime.now()
(кстати, не нужно использовать utcnow) дает вы только часть полной картины. - person MrFuppes   schedule 21.06.2021