【问题标题】:How to convert a python's datetime.tzinfo object to a pendulum's Timezone object?如何将 python 的 datetime.tzinfo 对象转换为钟摆的 Timezone 对象?
【发布时间】:2021-06-22 15:32:30
【问题描述】:

我知道我可以将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

有这样的方法吗?

【问题讨论】:

    标签: python datetime pendulum


    【解决方案1】:

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

    tzinfo=timezone.utc 的情况下,pendulum.instance() 会将 tzinfo 对象转换为以小时为单位的偏移量,并将其传递给 pendulum.datetimependulum.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
    

    【讨论】:

      猜你喜欢
      • 2015-11-26
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 2022-01-23
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      相关资源
      最近更新 更多