Встроенный модуль datetime
предоставляет вам базовые классы и структуры данных для работы с часовыми поясами, но он не содержит фактических данных часового пояса.Это потому, что такие данные иногда обновляются и пересматриваются, и вы не захотите, чтобы они были жестко закодированы в дистрибутив Python.Вот тут-то и появляется модуль pytz
, который можно устанавливать и обновлять отдельно.
На практике вы в основном имеете дело с datetime.datetime
и pytz.timezone
:
from datetime import datetime
import pytz
datetime.now(pytz.timezone('Asia/Tokyo'))
Если вы работаете только в UTC, это единственный часовой пояс, в который встроен Python:
from datetime import datetime, timezone
datetime.now(timezone.utc)
Вы должны внимательно прочитать примечания по использованию pytz, когда использовать datetime.astimezone
, localize
и когдапередать часовой пояс в качестве аргумента функции datetime
: http://pytz.sourceforge.net/#example-usage.