Python - вычислить разницу между двумя объектами datetime.time
У меня есть два объекта datetime.time, и я хочу рассчитать разницу между часами между ними. Например
a = datetime.time(22,00,00)
b = datetime.time(18,00,00)
Я хотел бы иметь возможность вычитать их так, чтобы он дал мне значение 4.
Ответы
Ответ 1
Для того, чтобы вычислить разницу, вы должны преобразовать datetime.time
объект в datetime.datetime
объекта. Затем, когда вы вычитаете, вы получаете объект timedelta
. Чтобы узнать, сколько часов у объекта timedelta
, вы должны найти общие секунды и разделить его на 3600
.
# Create datetime objects for each time (a and b)
dateTimeA = datetime.datetime.combine(datetime.date.today(), a)
dateTimeB = datetime.datetime.combine(datetime.date.today(), b)
# Get the difference between datetimes (as timedelta)
dateTimeDifference = dateTimeA - dateTimeB
# Divide difference in seconds by number of seconds in hour (3600)
dateTimeDifferenceInHours = dateTimeDifference.total_seconds() / 3600
Ответ 2
Вот как я это сделал
a = '2200'
b = '1800'
time1 = datetime.strptime(a,"%H%M") # convert string to time
time2 = datetime.strptime(b,"%H%M")
diff = time1 -time2
diff.total_seconds()/3600 # seconds to hour
вывод: 4.0
Ответ 3
Я получил свой результат от этой проблемы:
a='2017-10-10 21:25:13'
b='2017-10-02 10:56:33'
a=pd.to_datetime(a)
b=pd.to_datetime(b)
c.total_seconds()/3600
но в серии, которая не будет работать:
table1['new2']=table1['new'].total_seconds()/3600