/
githubmirror
/
tzdata
Обзор
Документация
Войти
/
githubmirror
/
tzdata
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
docs/index.rst
130 строк
4 KB
Stan Ulbrych
Fix punctuation in README.
24 апр 2026, 20:30
24 апр 2026, 20:30
5bb6232
Код
Авторство
О чём код?
tzdata: Python package providing IANA time zone data ==================================================== This is a Python package containing ``zic``-compiled binaries for the IANA time zone database. It is intended to be a fallback for systems that do not have system time zone data installed (or don't have it installed in a standard location), as a part of `PEP 615 <https://www.python.org/dev/peps/pep-0615/>`_. The `python/tzdata <https://github.com/python/tzdata>`_ repository generates a ``pip``-installable package, published on PyPI as `tzdata <https://pypi.org/project/tzdata>`_. Overview -------- ``tzdata`` is a *data-only* package, organized in such a way that its resources are accessible via :mod:`importlib.resources` (or, in older versions of Python, its backport `importlib_resources`_). Although ``importlib.resources`` or equivalent is recommended, it is also possible to access the data via :func:`pkgutil.get_data` as well. It is primarily intended to be used by standard library's :mod:`zoneinfo` module, but it is also available as a source for time zone data for other time zone libraries. It is generally recommended that any time zone libraries should attempt to use the system data before using the ``tzdata`` package, but some systems (notably Windows) do not deploy zoneinfo binaries of this type, and so ``tzdata`` is necessary. Contents -------- The ``tzdata`` package provides the output of ``zic`` compilation (the equivalent of something like ``/usr/share/zoneinfo``) under the ``tzdata.zoneinfo`` package unaltered. This includes the ``tzdata.zi`` file, which is a compact text representation of the un-compiled time zone database. The package organization looks something like this:: src/tzdata ├── __init__.py ├── zoneinfo │ ├── __init__.py │ ├── Africa │ │ ├── __init__.py │ │ ├── Abidjan │ │ ├── Accra │ │ ├── … │ │ └── Windhoek │ ├── America │ │ ├── __init__.py │ │ ├── Adak │ │ ├── Anchorage │ │ ├── … │ │ └── Yellowknife │ ├── … │ ├── tzdata.zi │ ├── … │ ├── zone.tab │ └── Zulu └── zones 21 directories, 623 files In addition to the zoneinfo files, it also provides a small amount of extra metadata about the time zones. The ``tzdata.zones`` file is a newline-delimited file listing all the IANA keys for time zone files present in the ``tzdata.zoneinfo`` package. The version of the IANA data is provided as a Python variable as ``tzdata.IANA_VERSION``. Examples -------- End users should generally **not** need to use this package directly and should use a Python library like :mod:`dateutil.tz` or `zoneinfo`_, like so: .. code-block:: python # Python 3.9+ from datetime import datetime from zoneinfo import ZoneInfo dt = datetime.now(ZoneInfo("America/New_York")) For those writing time zone libraries, the recommended mechanism for access is to open the relevant zoneinfo binaries with :func:`importlib.resources.open_binary`, like so: .. code-block:: python from importlib import resources # America/New_York with resources.open_binary("tzdata.zoneinfo.America", "New_York") as f: assert f.read(4) == b"TZif" Note that the way this is organized, each folder in ``tzdata.zoneinfo`` is a package with resources below it. An example function for converting IANA keys to package names: .. code-block:: python def iana_key_to_resource(key): package_loc, resource = key.rsplit("/", 1) package = "tzdata.zoneinfo." + package_loc.replace("/", ".") return package, resource assert iana_key_to_resource("America/New_York") == \ ("tzdata.zoneinfo.America", "New_York") assert iana_key_to_resource("America/Indiana/Indianapolis") == \ ("tzdata.zoneinfo.America.Indiana", "Indianapolis") .. Links .. _importlib_resources: https://importlib-resources.readthedocs.io/en/latest/ .. _zoneinfo: https://docs.python.org/3/library/zoneinfo.html .. toctree:: :maxdepth: 1 :caption: Contents: maintaining Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`