Как представить объект datetime с timezone строкой?

Например, мне нужно время формата 2022-11-14 18:01:01+04:00; я использую формат '%Y-%m-%d %H:%M:%S%Z', который представляет 2022-11-14 18:01:01+04. Как сделать, чтобы было 2022-11-14 18:01:01+04:00?


Ответы (2 шт):

Автор решения: strawdog

Возможно, pytz вам поможет:

import datetime
import pytz
d = datetime.datetime.now()
print(pytz.timezone('Europe/Moscow').localize(d).strftime('%Y-%m-%d %H:%M:%S%z'))

2022-11-14 13:56:55+0300

→ Ссылка
Автор решения: Gruvi

Попробуйте вот так:

import datetime
def dt():
    dateTime = datetime.datetime.today()
    cstTimeDelta = datetime.timedelta(hours=+4)
    tzObject = datetime.timezone(cstTimeDelta, name="CST")
    cstTimeNow = dateTime.replace(tzinfo=tzObject)
    print(cstTimeNow.isoformat(" ", "seconds"))

итог будет вот такой:

2022-11-14 14:03:38+04:00
→ Ссылка