datetime.timezone类的文档只说:
将tzinfo抽象基类实现为与UTC的固定偏移量的类。
它接受timedelta作为其论据。
我从来没有看到过直接从其他代码片段中使用它的例子,虽然我相信必须有一些使用它,否则Python没有公开这个API。那么在什么情况下会建议直接使用这个类?使用像pytz这样的专用库有什么好处?
datetime模块提供了tzinfo,timezone的简单具体子类,它可以表示具有与UTC固定偏移的时区,例如UTC本身或北美EST和EDT。
基本思想是,对于简单偏移UTC时间的时区(即UTC +/-一些固定的分钟数),实现tzinfo对象所需的所有方法比必要更省力,因此您可以简单地对timezone对象进行子类化带偏移值。
文档本身也建议使用pytz来处理时区:
pytz库将IANA时区数据库(也称为Olson数据库)引入Python,建议使用它
来自datetime docs的python 3.6+的更新是不再使用pytz:
dateutil.tz库将IANA时区数据库(也称为Olson数据库)引入Python,建议使用它。
建议使用dateutil.tz而不是pytz,因为如果时区因夏令时或其他原因而有多个偏移,pytz会以意想不到的方式处理datetime.timedelta操作。 This article explains in more detail。