Русский
Открыть в Telegram

Пост Python предоставляет мощную библиотеку для работы с датой и временем — datetime.

25 мая 2026
Б
Библиотека Python разработчика | Книги по питону
Python предоставляет мощную библиотеку для работы с датой и временем — datetime. Интересная особенность в том, что объекты datetime имеют специальный интерфейс для поддержки часовых поясов (а именно атрибут tzinfo), но сам модуль реализует этот интерфейс лишь частично, оставляя остальную работу другим модулям. Наиболее популярный модуль для этой задачи — pytz. Хитрость в том, что pytz не полностью соответствует интерфейсу tzinfo. В документации pytz это указано уже в первых строках: «Эта библиотека отличается от задокументированного Python API для реализаций tzinfo». Вы не можете использовать объекты часовых поясов pytz напрямую в качестве tzinfo. Если попробовать, можно получить совершенно неожиданные результаты: In : paris = pytz.timezone('Europe/Paris') In : str(datetime(2017, 1, 1, tzinfo=paris)) Out: '2017-01-01 00:00:00+00:09' Обратите внимание на смещение +00:09. Правильное использование pytz выглядит так: In : str(paris.localize(datetime(2017, 1, 1))) Out: '2017-01-01 00:00:00+01:00' Также после любых арифметических операций с датами рекомендуется нормализовать объект datetime на случай изменения смещения (например, на границе перехода на летнее время): In : new_time = time + timedelta(days=2) In : str(new_time) Out: '2018-03-27 00:00:00+01:00' In : str(paris.normalize(new_time)) Out: '2018-03-27 01:00:00+02:00' Начиная с Python 3.6, рекомендуется использовать dateutil. tz вместо pytz. Он полностью совместим с tzinfo, может напрямую передаваться в атрибут tzinfo, не требует нормализации, хотя работает немного медленнее. 📲 Мы в MAX 👉@BookPython
8 · 1.6K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питону🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv BashББиблиотека Python разработчика | Книги по питонуМожно добавлять символы Unicode в строковый литерал не только по их номеру, но и по имени. >>> '\N{EM DASH}' '—' >>> '\u2014' '—' Это также совместимо с f-строк
это сообщение
ББиблиотека Python разработчика | Книги по питонуВ Python можно переопределить оператор квадратных скобок ([]), реализовав магический метод __getitem__. Вот так можно создать объект, который виртуально содержиББиблиотека Python разработчика | Книги по питонуОператор in можно использовать с генераторами: x in g. Python будет итерироваться по g, пока не найдёт x или пока генератор не закончится. >>> def g(): ... prin
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем