Как я могу получить часовой пояс из объекта даты Arrow

avatar
Apollo-Roboto
1 июля 2021 в 21:18
103
1
0

Мне нужно получить часовой пояс из объекта даты Arrow

В качестве примера возьмем это:

import arrow
arrow_date = arrow.get("2000-01-01", tzinfo="America/Toronto")

Как я могу вернуть эту tzinfo точно так же, как в приведенном выше коде?

Я попробовал следующее: arrow_date.format("ZZZ"), но это возвращает аббревиатуру, которая не будет работать в моей ситуации.

Источник

Ответы (1)

avatar
FObersteiner
2 июля 2021 в 06:17
1

Вы можете использовать метод _filename tzinfo:

import arrow

arrow_date = arrow.get("2000-01-01", tzinfo="America/Toronto")
print(arrow_date.tzinfo._filename)
# Canada/Eastern

см. также Как найти имя часового пояса из tzfile в python.


Для стандартного объекта lib datetime с tzinfo из zoneinfo можно просто использовать метод __str__:

from datetime import datetime
from zoneinfo import ZoneInfo # Python 3.9

dtobj = datetime.fromisoformat("2000-01-01").replace(tzinfo=ZoneInfo("America/Toronto"))
tzinfo = str(dtobj.tzinfo)
print(tzinfo)
# America/Toronto