如何按类型检查对象是否是 pytz.timezone 的实例?
How can I check by type if an object is instance of pytz.timezone?
我想要这样的东西:
from datetime import datetime, timezone
import pytz
def convert_datetime_by_timezone(timestamp_dt, to_timezone):
if isinstance(to_timezone, str):
return timestamp_dt.astimezone(pytz.timezone(to_timezone))
elif isinstance(to_timezone, pytz.tzinfo.??????):
return timestamp_dt.astimezone(to_timezone)
else:
raise Exception("Invalid timezone: '%s'" % str(to_timezone))
但每次我创建 pytz 时区时,都会创建一个新类型的对象:
>>> type(pytz.timezone("UTC"))
<class 'pytz.UTC'>
>>> type(pytz.timezone("Europe/Budapest"))
<class 'pytz.tzfile.Europe/Budapest'>
正确的检查方法是什么?
isinstance(x, pytz.BaseTzInfo)
适用于两种情况
我想要这样的东西:
from datetime import datetime, timezone
import pytz
def convert_datetime_by_timezone(timestamp_dt, to_timezone):
if isinstance(to_timezone, str):
return timestamp_dt.astimezone(pytz.timezone(to_timezone))
elif isinstance(to_timezone, pytz.tzinfo.??????):
return timestamp_dt.astimezone(to_timezone)
else:
raise Exception("Invalid timezone: '%s'" % str(to_timezone))
但每次我创建 pytz 时区时,都会创建一个新类型的对象:
>>> type(pytz.timezone("UTC"))
<class 'pytz.UTC'>
>>> type(pytz.timezone("Europe/Budapest"))
<class 'pytz.tzfile.Europe/Budapest'>
正确的检查方法是什么?
isinstance(x, pytz.BaseTzInfo)
适用于两种情况