Вопрос по datetime

Пример кода:

from datetime import datetime
from pytz import timezone

tz=timezone('Europe/Moscow')

time=datetime(2021,9,4,13,30,0,tzinfo=tz)

now=datetime.now(tz)

print(now<time)

Проблема со сравнением now и time. Допустим в time 13 часов и 30 минут, а в now 13 часов и 31 минута В итоге вывод now<time - True. Почему так, если now больше time?


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

Автор решения: ganz
>>> from datetime import datetime
>>> from pytz import timezone
>>>
>>> tz=timezone('Europe/Moscow')
>>>
>>> time=datetime(2021,9,4,13,30,0,tzinfo=tz)
>>>
>>> now=datetime.now(tz)
>>>
>>> print(now<time)
False
>>> time
datetime.datetime(2021, 9, 4, 13, 30, tzinfo=<DstTzInfo 'Europe/Moscow' LMT+2:30:00 STD>)
>>> now
datetime.datetime(2021, 9, 4, 15, 37, 1, 309838, tzinfo=<DstTzInfo 'Europe/Moscow' MSK+3:00:00 STD>)
>>> int(time)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.datetime'
>>> str(time)
'2021-09-04 13:30:00+02:30'
>>> str(now)
'2021-09-04 15:37:01.309838+03:00'

от сюда видим, что now имеет значене часов 15, что больше значения часов 13 time следовательно now больше time

→ Ссылка