BOOKPYTHON Telegram 3343
Python предоставляет мощную библиотеку для работы с датой и временем: datetime. Интересный момент заключается в том, что объекты datetime имеют специальный интерфейс для поддержки часовых поясов (а именно атрибут tzinfo), но этот модуль поддерживает интерфейс лишь частично, оставляя остальную часть задачи другим модулям.

Наиболее популярный модуль для этой задачи — pytz. Однако сложность в том, что pytz не полностью соответствует интерфейсу tzinfo. Документация pytz указывает на это одной из первых строк: «Эта библиотека отличается от документированного API Python для реализаций 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, может быть передан как атрибут, не требует нормализации, хотя работает немного медленнее.

👉@BookPython
👍4



tgoop.com/BookPython/3343
Create:
Last Update:

Python предоставляет мощную библиотеку для работы с датой и временем: datetime. Интересный момент заключается в том, что объекты datetime имеют специальный интерфейс для поддержки часовых поясов (а именно атрибут tzinfo), но этот модуль поддерживает интерфейс лишь частично, оставляя остальную часть задачи другим модулям.

Наиболее популярный модуль для этой задачи — pytz. Однако сложность в том, что pytz не полностью соответствует интерфейсу tzinfo. Документация pytz указывает на это одной из первых строк: «Эта библиотека отличается от документированного API Python для реализаций 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, может быть передан как атрибут, не требует нормализации, хотя работает немного медленнее.

👉@BookPython

BY Библиотека Python разработчика | Книги по питону


Share with your friend now:
tgoop.com/BookPython/3343

View MORE
Open in Telegram


Telegram News

Date: |

As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. Unlimited number of subscribers per channel Add up to 50 administrators Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data.
from us


Telegram Библиотека Python разработчика | Книги по питону
FROM American