1

我有 2 个日期时间对象:

a 
datetime.datetime(2013,2,11,15,35)

b
datetime.datetime(2013,2,11,18,55)

时差是 3:20

我怎样才能在python中获得这个?

我愿意:

(b-a).seconds/3600

但我得到 3 而不是 3:20

4

3 回答 3

5

可以接受人工施工吗?如果你减去两个日期时间,你会得到一个 timedelta 对象。然后从中获取值:

>>> diff = b - a
>>> diff
datetime.timedelta(0, 12000)

>>> hrs = diff.seconds / 3600
>>> hrs
3
>>> mins = diff.seconds % 3600 / 60
>>> mins
20
>>> "%s:%s" % (hrs, mins)
'3:20'
于 2013-04-01T07:29:26.267 回答
2
>>> diff = b - a
>>> diff
datetime.timedelta(0, 12000)
>>> (datetime.datetime(2010, 1, 1, 0, 0, 0) + diff).strftime("%H:%M")
'03:20'

也可能是一种方法。

于 2013-04-01T07:35:28.913 回答
0

也许我认为时间是:

(b-a).days*24 +(b-a).seconds/3600

这是另一种方式:

x = (b-a).seconds/3600.0 + (b-a).days*24
hours = int(x)
mins = int((x - hours)*60)
于 2013-04-01T07:44:39.150 回答