回答:
2つの既知の日付間の差を計算する場合は、次のtotal_seconds
ように使用します。
import datetime as dt
a = dt.datetime(2013,12,30,23,59,59)
b = dt.datetime(2013,12,31,23,59,59)
(b-a).total_seconds()
86400.0
#note that seconds doesn't give you what you want:
(b-a).seconds
0
(b-a).microseconds
からそれを除算して秒(1000000)またはミリ秒(1000)を取得できます
-60
:from datetime import datetime; (datetime(2019, 1, 1, 0, 0) - datetime(2019, 1, 1, 0, 1)).total_seconds()
import time
current = time.time()
...job...
end = time.time()
diff = end - current
それはあなたのために働くでしょうか?
>>> from datetime import datetime
>>> a = datetime.now()
# wait a bit
>>> b = datetime.now()
>>> d = b - a # yields a timedelta object
>>> d.seconds
7
(7は少し上で待った時間です)
datetime.datetimeはかなり便利だと思います。複雑なシナリオや厄介なシナリオがある場合は、お知らせください。
編集:常に更新が頻繁に行われているとは限らないため、日時が近づくとは限らないことを指摘してくれた@WoLpHに感謝します。デルタの日数を考慮することにより、より長いタイムスタンプの不一致を処理できます。
>>> a = datetime(2010, 12, 5)
>>> b = datetime(2010, 12, 7)
>>> d = b - a
>>> d.seconds
0
>>> d.days
2
>>> d.seconds + d.days * 86400
172800
d.seconds + d.days * 86400
代わりに戻ってきた場合、それは数日間正しいです;)
a - b
、a
ある前に b
:(すなわち、その結果が負になります)(a - b).seconds == 86282
しばらくa - b == datetime.timedelta(-1, 86276, 627665)
。正しい方法は、使用することだと私は考えていますtimedelta.total_seconds()
。しかし、それはpy2.7 +のみです。
timedelta.total_seconds()
です。それに応じて反対票を投じた。
total_seconds()
2.7以降の機能です。
Python 2.7には関数total_seconds()があります。下記のPython 2.6のコードを参照してください
import datetime
import time
def diffdates(d1, d2):
#Date format: %Y-%m-%d %H:%M:%S
return (time.mktime(time.strptime(d2,"%Y-%m-%d %H:%M:%S")) -
time.mktime(time.strptime(d1, "%Y-%m-%d %H:%M:%S")))
d1 = datetime.now()
d2 = datetime.now() + timedelta(days=1)
diff = diffdates(d1, d2)
これが私のために働いているものです。
from datetime import datetime
date_format = "%H:%M:%S"
# You could also pass datetime.time object in this part and convert it to string.
time_start = str('09:00:00')
time_end = str('18:00:00')
# Then get the difference here.
diff = datetime.strptime(time_end, date_format) - datetime.strptime(time_start, date_format)
# Get the time in hours i.e. 9.60, 8.5
result = diff.seconds / 3600;
お役に立てれば!