Преобразование наивной даты и времени tz в осведомленные tz скачки с 0 минут до 58 - PullRequest
0 голосов
/ 15 января 2020

Когда я конвертирую неосведомленный datetime в осознанный, это делает странную вещь. Это добавляет 58 минут.

_datetime = datetime.combine(_date,_time)
print(_datetime)
datetime_tz = _datetime.replace(tzinfo='Europe/Bratislava')
print(_datetime_tz)

2020-02-02 12: 45: 00
2020-02-02 12: 45: 00 + 00: 58

Знаете ли вы, как и как это сделать?

1 Ответ

1 голос
/ 15 января 2020

Чтобы правильно использовать объект часового пояса из pytz, необходимо использовать функцию localize.

>>> import pytz
>>> tz = pytz.timezone('Europe/Bratislava')
>>> _datetime = datetime.combine(_date,_time)
>>> print(_datetime)
2020-02-02 12:45:00
>>> _datetime_tz = tz.localize(_datetime)
>>> print(_datetime_tz)
2020-02-02 12:45:00+01:00

Если вы этого не сделаете, объект часового пояса находится в недопустимом состоянии, потому что он нет возможности скорректировать дату.

...