0

我知道我可以将 a 转换datetime.datetime为钟摆

from datetime import datetime,timezone
import pendulum

a = datetime(2021,6,1,tzinfo=timezone.utc)
b = pendulum.instance(a)
b.tzinfo.name # the presence of the attribute 'name' means it's a pendulum timezone
type(b.tzinfo) # pendulum.tz.timezone.FixedTimezone

但我有一个独立的datetime.tzinfo,是否可以将其转换为pendulum.tz.timezone.*

a = timezone.utc # well, imagine that it can be any tzinfo
b = pendulum.xxxxx(a) # that gives tome pendum.tz.timezone class

有没有这样的方法?

4

1 回答 1

0

查看您的实现pendulum.instance()可以看出它依赖于一个“私有”函数_safe_timezone,您可以使用该函数将 a 转换tzinfo为钟摆的时区。以下划线开头的方法/函数_通常表示它们不构成公共 API 的一部分,但函数存在。

在 a 的情况下,tzinfo=timezone.utcpendulum.instance()tzinfo 对象转换为以小时为单位的偏移量,pendulum.datetime并将用于pendulum._safe_timezone()将其转换为pendulum.tz.timezone.FixedTimeZone. 但_safe_timezone()也接受常规datetime.tzinfo作为输入。

a = pendulum._safe_timezone(timezone.utc) #  Timezone('UTC')
type(a) # pendulum.tz.timezone.FixedTimezone
于 2021-06-22T15:32:30.177 回答