Python 现在或将来会弃用“pytz”吗?

2024-03-26

pytz https://pytz.sourceforge.net/用于Django 版本: 选择当前时区 https://docs.djangoproject.com/en/3.2/topics/i18n/timezones/#selecting-the-current-time-zone如下所示:

import pytz # Here

from django.utils import timezone

class TimezoneMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        tzname = request.session.get('django_timezone')
        if tzname:
            timezone.activate(pytz.timezone(tzname))
        else:
            timezone.deactivate()
        return self.get_response(request)

But, zoneinfo https://docs.python.org/3/library/zoneinfo.html被用来代替pytz in Django 版本:4.0 选择当前时区 https://docs.djangoproject.com/en/4.0/topics/i18n/timezones/#selecting-the-current-time-zone如下所示:

import zoneinfo # Here

from django.utils import timezone

class TimezoneMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        tzname = request.session.get('django_timezone')
        if tzname:
            timezone.activate(zoneinfo.ZoneInfo(tzname))
        else:
            timezone.deactivate()
        return self.get_response(request)

我的问题:

  1. Is pytz现在或将来在 Python 中已弃用吗?
  2. 为什么不是pytz用于Django 版本:4.0 选择当前时区 https://docs.djangoproject.com/en/4.0/topics/i18n/timezones/#selecting-the-current-time-zone?

去引用pytz的自述文件 https://github.com/stub42/pytz/blob/master/src/README.rst#issues--limitations:

该项目正处于维护模式。使用 Python 3.9 或更高版本的项目最好通过使用现在包含在核心 Python 和与之配合使用的包(例如 tzdata)中的时区功能来服务。

如果不使用字面意思“已弃用”,则包维护者建议您不要使用pytz对于新项目,因此这实际上是对所有意图和目的的弃用。

所以 Django 的策略与此一致,事实上 Django 更进一步,通过促进使用zoneinfoPython 3.8(仍受支持的最旧的 Python 版本)。从您引用的 Django 4.0 文档 https://docs.djangoproject.com/en/4.0/topics/i18n/timezones/#selecting-the-current-time-zone:

时区支持使用zoneinfo,它是 Python 3.9 中 Python 标准库的一部分。这backports.zoneinfo如果您使用的是 Python 3.8,该软件包会自动与 Django 一起安装。

and

Django 4.0 中的更改:zoneinfo被设为默认时区实现。您可以继续使用pytz在 4.x 发布周期期间通过USE_DEPRECATED_PYTZ环境。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 现在或将来会弃用“pytz”吗? 的相关文章

随机推荐

  • android中如何区分480X800和480X854屏幕?

    如何区分 480X800 和 480X854 屏幕 我们可以选择将一张图像放在 hdpi 文件夹中 在我的情况下 480X800 图像不支持 480X854 图像 它在底部显示一个空白区域 有什么想法吗 编辑 我将图像设置为背景 在我的布局
  • wordpress 插件 -> 调用未定义函数 wp_get_current_user()

    我正在尝试使用函数 wp get current user 获取插件中的当前用户信息 但我越来越Call to undefined function wp get current user 显然发生这种情况是因为文件 wp includes
  • 如何路由用户配置文件 URL 以跳过控制器?

    现在我的用户个人资料 URL 如下所示 http example com users joeschmoe http example com users joeschmoe 这表明show用户控制器中的方法 我理想的做法是提供这样的用户个人资
  • Winforms DataGridView 中的超链接单元格

    我有一个包含以下数据的 datagridview ContactType Contact Phone 894356458 Email email protected cdn cgi l email protection 在这里 我需要显示数
  • 是否可以为每个商店定义 Magento 布局更新

    我有一个 Magento 安装运行两个不同的网站 一个销售电子书 另一个不销售 因此业务团队希望看到 我的下载 链接从应用程序 我的帐户 区域的客户导航块中删除 我可以看到 design frontend base layout downl
  • AttributeError:模块“keras.engine”没有属性“input_layer”

    我正在尝试使用谷歌colab 但我一直遇到 keras 的问题 它说 AttributeError 模块 keras engine 没有属性 input layer 然而 检查他们的github库 keras engine中有一个input
  • go build 与 strip 的 golang strip 符号

    为什么剥离符号不同strip and go build ldflags s w see here https stackoverflow com questions 29599209 how to build a release versi
  • Android:startActivityForResult 的 resultCode 总是为 0? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 由于某种原
  • 在rails控制台中查看回滚错误的原因

    我正在尝试通过 Rails 控制台更新记录 但收到回滚错误 Project find 118 update attributes featured gt true Project Load 2 6ms SELECT projects FRO
  • 从下到上显示活动

    我想展示一个activity到另一个从下到上的动画使用Intent 给我一些例子 如下所示 Intent i2 new Intent main this test class startActivity i2 从下到上有动画 在 res a
  • Linq - 在列表中按周分组

    我想按周对我的数据进行分组 如下所示 var result stats GroupBy i gt SqlFunctions DatePart week i date Select g gt new ReportModel clicks g
  • 如何计算两个单词之间的相似度以检测它们是否重复?

    我有两个单词 我想计算它们之间的相似度 以便对它们是否重复进行排名 如何使用深度学习 NLP 方法实现这一目标 这里有一些解决文本相似性的方法 基于字符串的方法 给定 2 个句子字符串计算余弦相似度 https stackoverflow
  • array_key_exists 不起作用

    array key exists 不适用于大型多维数组 对于前 arr array 1 gt 10 2 gt array 21 gt 21 22 gt 22 23 gt array test gt 100 231 gt 231 3 gt 3
  • 嵌入时间线中的多个推特提要

    我现在正在开发一个网站 其中会有多个公司简介 每个个人资料都需要有一个 Twitter feed 并且在每个 feed 中我需要能够包含至少 2 个 Twitter 用户的推文 正在分析的公司和网站的 feed 本身 可能还有第三个 我有点
  • 提示用户输入密码 - Google OpenID Connect

    我们正在尝试将 Google 的 OpenID Connect 用于商业网络应用程序 但担心用户会使应用程序保持打开状态 并且未经授权的用户将登录 因为用户仍然登录到 Google 因此 OpenID Connect 只是让他们直接登录 W
  • 如何从多个线程同时访问MySQL

    我们正在对 MySQL 进行一个小型基准测试 希望了解它对我们的数据的执行情况 该测试的一部分是看看当多个并发线程用各种查询攻击服务器时它是如何工作的 The MySQL 文档 http dev mysql com doc refman 5
  • 如何使用rest api将数据集作为csv文件导入到power bi?

    我想在 power bi 中自动执行导入过程 但我找不到如何将 csv 文件发布为数据集 我正在为此使用 C 解决方案 有没有办法做到这一点 您无法将 CSV 文件直接导入到 Power BI 服务中已发布的数据集 AddRowsAPIEn
  • 如果时区设置为“UTC”,SimpleDateFormat 会忽略“XXX”

    我正在尝试按以下格式将当前日期时间输出为 UTC 2016 01 11T14 08 42 00 00 final SimpleDateFormat formatter new SimpleDateFormat yyyy MM dd T HH
  • PHP 的项目结构

    我是 PHP 新手 想了解 php 项目的目录结构 我有Java方面的经验 在java中我们有src包含java源文件 WEB INF包含lib和jsp页面 PHP 中有类似的标准目录结构吗 我们在 php 中也有分层吗 就像我们在 jav
  • Python 现在或将来会弃用“pytz”吗?

    pytz https pytz sourceforge net 用于Django 版本 选择当前时区 https docs djangoproject com en 3 2 topics i18n timezones selecting t