Вычитая два datetime друг из друга и возвращая в формате ЧЧ: ММ: СС в python 2,7 - PullRequest
1 голос
/ 14 февраля 2020

У меня есть две строки даты и времени, которые я буду sh вычитать друг из друга и хочу вернуть ответ в формате HH:MM:SS, используя python 2.7. Например, у меня есть "2019-01-22 10:46:34" и "2019-01-22 10:30:34", и я хочу, чтобы он возвращал что-то вроде этого 00:16:00. Я пытался преобразовать времена в целые числа, но не могу конвертировать обратно. Я также попробовал модуль datetime. Ниже приведен элементарный пример того, что я пытался преобразовать в функцию sh.

from datetime import datetime
a = "2019-01-22 10:46:34"
b = "2019-01-22 10:30:25"
c = a-b
print(datetime.time(c, '%Y-%m-%d %H:%M:%S')

Я работал над этой проблемой в течение нескольких дней, поэтому любая помощь будет высоко цениться.

1 Ответ

0 голосов
/ 14 февраля 2020

Посмотрите на timedelta Объект.

С этим вы можете получить разницу между двумя datetime Объектами в секундах, а затем вы можете набрать c Минутных часов и др. c.

Например, у вас есть два datetime объекта a и b, c будет timedelta объектом:

import datetime 

# datetime object (year, month, day, hour, minute, second) 
a = datetime.datetime.strptime("2019-01-22 10:46:34", "%Y-%m-%d %H:%M:%S")
b = datetime.datetime.strptime("2019-01-22 10:30:25", "%Y-%m-%d %H:%M:%S")

# returns timedelta object 
c = a-b  
print('Difference: ', c) 

# return (minutes, seconds) 
minutes = divmod(c.seconds, 60)  
print('Difference in minutes: ', minutes[0], 'minutes', 
                                 minutes[1], 'seconds')

РЕДАКТИРОВАТЬ: divmod() используется для получения результата теста в виде минут и секунд, но вы также можете просто написать

minutes = c.seconds / 60
print('Difference in minutes: ', minutes)

Вывод: Difference in minutes: 16 minutes 9 seconds

...