如何从 Arrow 日期对象获取时区
How can I get the timezone from an Arrow date object
我需要从 Arrow 日期对象中检索时区
我们以此为例:
import arrow
arrow_date = arrow.get("2000-01-01", tzinfo="America/Toronto")
我怎样才能 return 这个 tzinfo 与上面的代码完全一样?
我尝试了以下方法:arrow_date.format("ZZZ")
但是这个 return 是一个缩写,不适合我的情况。
可以使用tzinfo的_filename
方法:
import arrow
arrow_date = arrow.get("2000-01-01", tzinfo="America/Toronto")
print(arrow_date.tzinfo._filename)
# Canada/Eastern
另见 How to find the timezone name from a tzfile in python。
对于带有来自 zoneinfo
的 tzinfo 的标准 lib datetime 对象,您可以简单地使用 __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
我需要从 Arrow 日期对象中检索时区
我们以此为例:
import arrow
arrow_date = arrow.get("2000-01-01", tzinfo="America/Toronto")
我怎样才能 return 这个 tzinfo 与上面的代码完全一样?
我尝试了以下方法:arrow_date.format("ZZZ")
但是这个 return 是一个缩写,不适合我的情况。
可以使用tzinfo的_filename
方法:
import arrow
arrow_date = arrow.get("2000-01-01", tzinfo="America/Toronto")
print(arrow_date.tzinfo._filename)
# Canada/Eastern
另见 How to find the timezone name from a tzfile in python。
对于带有来自 zoneinfo
的 tzinfo 的标准 lib datetime 对象,您可以简单地使用 __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