3
date1 = datetime.datetime(2012, 10, 10, 10, 15, 44)
date2 = datetime.datetime(2012, 10, 17, 8, 45, 38)
roundedA = date2.replace(second = 0, microsecond = 0)
print roundedA
roundedB = date1.replace(second = 0, microsecond = 0)
print roundedB
minutes = (roundedA - roundedB).min
print minutes

結果は次のとおりです。

-999999999 days, 0:00:00

2つの異なる日付の違いを数えたい. 上記を差し引いたのですが、欲しいものが得られません。2 つの日付を減算して、数分または数時間で結果を取得する方法。

4

2 に答える 2

5

このtimedelta.min属性は分を表すのではなく、可能な最小の timedelta を意味します (こちらを参照)。数分で取得したい場合は、次のことができます。

d = roundedA - roundedB
minutes = d.days * 1440 + d.seconds / 60

これは、秒と日のみが に内部的に保存されるためtimedeltaです。

于 2012-10-17T01:36:58.167 に答える
1

time モジュールを使用して、減算の結果を秒単位で取得することもできます。

import time
import datetime
date1 = datetime.datetime(2012, 10, 10, 10, 15, 44)
date2 = datetime.datetime(2012, 10, 17, 8, 45, 38)
var1 = time.mktime(date1.timetuple())
var2 = time.mktime(date2.timetuple())
result_in_seconds = var2 - var1

>>> var2 - var1
599394.0

または、回答で提供される機能を使用します

>>> def days_hours_minutes(td):
...     return td.days, td.seconds//3600, (td.seconds//60)%60
... 
>>> date2 - date1
datetime.timedelta(6, 80994)
>>> days_hours_minutes(datetime.timedelta(6, 80994))
(6, 22, 29)
于 2012-10-17T02:07:47.887 に答える