如何在Python中获取自某日期以来的小时数
我有一个函数,叫做 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 个回答
2
timedelta.total_seconds()
的文档中提到:
如果你想用秒以外的单位来表示时间间隔,可以直接用除法的方式来计算(比如
td / timedelta(microseconds=1)
)。
在这个例子中,具体的写法是这样的:
def getHoursSince(date):
return datetime.timedelta(days=date) // datetime.timedelta(hours=1)
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)