计算python中日期之间的小时范围

Gus*_*yes 2 python datetime

如何找出日期范围内的小时数?我正在计算和打印两个给定日期之间的日期.

from datetime import timedelta as td, datetime

d1 = datetime.strptime(start_date, '%Y-%m-%d')
d2 = datetime.strptime(end_date, '%Y-%m-%d')

def get_delta(d1, d2):
    delta = d2 - d1
    return delta

delta = get_delta(d1,d2)
for i in range(delta.days + 1):
    print d1 + td(days=i)
Run Code Online (Sandbox Code Playgroud)

当前输出:

2016-04-22
2016-04-23
2016-04-24
2016-04-25
2016-04-26
2016-04-27
2016-04-28
...
Run Code Online (Sandbox Code Playgroud)

预期产量:

2016-04-22 00:00:00
2016-04-22 01:00:00
2016-04-22 02:00:00
2016-04-22 03:00:00
2016-04-22 04:00:00
2016-04-22 05:00:00
2016-04-22 06:00:00
2016-04-22 07:00:00
...
Run Code Online (Sandbox Code Playgroud)

Max*_*ers 6

您将时间增加了几天而不是几小时,timedelta(days=i)而不是timedelta(hours=i)

from datetime import timedelta as td, datetime

start_date = '2016-01-01'
end_date = '2016-01-02'
d1 = datetime.strptime(start_date, '%Y-%m-%d')
d2 = datetime.strptime(end_date, '%Y-%m-%d')

def get_delta(d1, d2):
    delta = d2 - d1
    return delta

delta = get_delta(d1,d2)
for i in range(delta.days * 24 + 1):
    print d1 + td(hours=i)
Run Code Online (Sandbox Code Playgroud)

输出:

2016-01-01 00:00:00
2016-01-01 01:00:00
...
...
2016-01-01 23:00:00
2016-01-02 00:00:00
Run Code Online (Sandbox Code Playgroud)