Python 3标准库中的datetime.timezone类是否有实际用途?

问题描述 投票:0回答:2

datetime.timezone类的文档只说:

将tzinfo抽象基类实现为与UTC的固定偏移量的类。

它接受timedelta作为其论据。

我从来没有看到过直接从其他代码片段中使用它的例子,虽然我相信必须有一些使用它,否则Python没有公开这个API。那么在什么情况下会建议直接使用这个类?使用像pytz这样的专用库有什么好处?

python datetime timezone standard-library pytz
2个回答
0
投票

来自Python 3 documentation

datetime模块提供了tzinfo,timezone的简单具体子类,它可以表示具有与UTC固定偏移的时区,例如UTC本身或北美EST和EDT。

基本思想是,对于简单偏移UTC时间的时区(即UTC +/-一些固定的分钟数),实现tzinfo对象所需的所有方法比必要更省力,因此您可以简单地对timezone对象进行子类化带偏移值。

文档本身也建议使用pytz来处理时区:

pytz库将IANA时区数据库(也称为Olson数据库)引入Python,建议使用它


0
投票

来自datetime docs的python 3.6+的更新是不再使用pytz:

dateutil.tz库将IANA时区数据库(也称为Olson数据库)引入Python,建议使用它。

建议使用dateutil.tz而不是pytz,因为如果时区因夏令时或其他原因而有多个偏移,pytz会以意想不到的方式处理datetime.timedelta操作。 This article explains in more detail

© www.soinside.com 2019 - 2024. All rights reserved.