Вопрос по 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