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

时间:2016-08-28 17:18:55

标签: python datetime timezone standard-library pytz

datetime.timezone类的文档只说:

  

将tzinfo抽象基类实现为固定的类   偏离UTC。

它接受timedelta作为其论据。

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

2 个答案:

答案 0 :(得分:0)

来自Python 3 documentation

  

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

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

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

  

pytz库带来了IANA时区数据库(也称为   推荐使用Olson数据库)及其使用方法

答案 1 :(得分:0)

datetime docs开始的python 3.6+更新已不再使用pytz:

  

dateutil.tz库带来了IANA时区数据库(也称为   建议使用Olson数据库)和Python。

与pytz相比,建议使用

dateutil.tz,因为如果时区由于夏时制或其他原因而存在多个偏移,则pytz会以意外方式处理datetime.timedelta操作。 This article explains in more detail