Skip to content

Таймзоны в Python

Как выставить таймзону дате?

Использовать datetime.datetime.astimezone и datetime.timezone:

import datetime as dt

now_date = dt.datetime.now().replace(hour=0, minute=0, second=0)
last_meeting = (
    now_date
    - dt.timedelta(days=7)
    + dt.timedelta(hours=16)
).astimezone(dt.timezone(offset=dt.timedelta(hours=3)))

Выставить текущей дате

import pytz

dt.datetime.now(pytz.timezone(settings.TIME_ZONE))

Здесь settings.TIME_ZONE - это джанго-настройка таймзоны, напр. Europe/Moscow

Как перевести из UTC в UTC+3 (со сдвигом)?

utc_now = dt.datetime.utcnow()
utc_now = utc_now.replace(tzinfo=pytz.UTC)

local_now = utc_now.astimezone(pytz.timezone('Europe/Moscow'))