Python 2.7で2つの日時を減算してHH:MM:SSで返す

2020-02-14 python-2.7 date datetime

2つの日付と時刻の文字列があり、それらを減算して答えを返したい Python 2.7を使用したHH:MM:SS形式。たとえば、 "2019-01-22 10:46:34""2019-01-22 10:30:34"あり、このように00:16:00ようなものを返したいとします。時間を整数に変換してみましたが、元に戻せないようです。 datetimeモジュールも試しました。以下は、私が関数に変換したいものの初歩的な例です。

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')

私はこの問題に数日間取り組んできましたので、どんな助けもいただければ幸いです。

Answers

timedeltaオブジェクトを見てください。

これを使用すると、2つのdatetimeオブジェクトの差を秒datetimeで取得でき、次に分時間などを計算できます。

timedelta 、2つのdatetimeオブジェクトab場合、 ctimedeltaオブジェクトになります。

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

Related