如何获得python中某个特定日期以来的小时数

时间:2013-03-19 22:35:37

标签: python datetime timedelta

我有一个功能,getHoursSince()

def getHoursSince (date):

    prior = datetime.datetime.now() - datetime.timedelta(days=date)

    priorHour = prior.hour

    hoursSinceDate = ...

    return hoursSinceDate

所以,我可以得到一个日期对象,给定一个常数值,即如果yesterday = 1,我可以调用getHoursSince(yesterday)。我不知道该怎么做才能获得datetime.datetime.now()priorHour变量之间的小时数 - 任何想法?

2 个答案:

答案 0 :(得分:4)

你是以错误的方式去做的;您只需将timedelta()转换为小时:

def getHoursSince(date):
    return int(datetime.timedelta(days=date).total_seconds() // 3600)

给出:

>>> getHoursSince(1)
24
>>> getHoursSince(1.5)
36
>>> getHoursSince(2)
48
>>> getHoursSince(3)
72

但你也可以基于简单算术:

def getHoursSince(date):
    return int(24 * date)

答案 1 :(得分:0)

timedelta.total_seconds() documentation说:

对于除秒以外的间隔单位,请直接使用除法表 (例如td / timedelta(microseconds=1))。

这是这种情况下的样子:

def getHoursSince(date):
    return datetime.timedelta(days=date) // datetime.timedelta(hours=1)