Python Разница времени и даты дает -999999999 в мин., Когда диф мало - PullRequest
0 голосов
/ 02 апреля 2020

В моем маленьком скрипте я хотел дать время для скрипта. В течение небольшого времени, например, менее 1 минуты, я задаю min как -999999999 .

Но в других проблем нет. Могут быть получены секунды и микросекунды, и они имеют тип int, хотя min <class 'datetime.timedelta'>

Моя связанная связка кода:

 from datetime import datetime,timedelta

 now = datetime.now()
 # some code here
 then = datetime.now()

 delta= then-now
 print(delta.seconds) # 10
 print(delta.microseconds) # 432214     
 print(delta.min) # '-999999999 days, 0:00:00'

В консоли я даю:

datetime.timedelta(days=-999999999)

Где я делаю не так?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

timedelta.min не дает вам минут, но согласно документации наименьшее возможное значение дельты.

timedelta.min

Наиболее отрицательный объект timedelta, timedelta(-999999999).

0 голосов
/ 02 апреля 2020

Только дни, секунды и микросекунды хранятся внутри объектов timedelta

Атрибут min, к которому вы обращаетесь, не представляет минут и фактически является самым отрицательным объектом timedelta, timedelta(-999999999)

Вы можете получить значение минут, используя метод total_seconds из объекта timedelta :

minutes = delta.total_seconds() / 60

Прочитать документацию по атрибуту min здесь

...